agora inbox for pgsql-hackers@postgresql.orghelp / color / mirror / Atom feed
[PATCH] Fix possibility of deadlock when dropping partitions 883+ messages / 2 participants [nested] [flat]
* [PATCH] Fix possibility of deadlock when dropping partitions @ 2017-04-03 06:37 amit <amitlangote09@gmail.com> 0 siblings, 0 replies; 883+ messages in thread From: amit @ 2017-04-03 06:37 UTC (permalink / raw) The partition relation is locked much earlier than heap_drop_with_catalog, which is the first point in the drop command's processing where the parent relation is locked. That reverses the order in which the locking should happen, which is to lock the parent before any of its partitions. --- src/backend/catalog/heap.c | 30 +++++++++++++++++------------- src/backend/commands/tablecmds.c | 30 ++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 13 deletions(-) diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c index 1cbe7f907f..2dc533ba43 100644 --- a/src/backend/catalog/heap.c +++ b/src/backend/catalog/heap.c @@ -1758,29 +1758,33 @@ void heap_drop_with_catalog(Oid relid) { Relation rel; + HeapTuple tuple; Oid parentOid; Relation parent = NULL; /* - * Open and lock the relation. + * To drop a partition safely, we must grab exclusive lock on its parent, + * because another backend might be about to execute a query on the parent + * table. If it relies on previously cached partition descriptor, then + * it could attempt to access the just-dropped relation as its partition. + * We must therefore take a table lock strong enough to prevent all + * queries on the table from proceeding until we commit and send out a + * shared-cache-inval notice that will make them update their index lists. */ - rel = relation_open(relid, AccessExclusiveLock); - - /* - * If the relation is a partition, we must grab exclusive lock on its - * parent because we need to update its partition descriptor. We must take - * a table lock strong enough to prevent all queries on the parent from - * proceeding until we commit and send out a shared-cache-inval notice - * that will make them update their partition descriptor. Sometimes, doing - * this is cycles spent uselessly, especially if the parent will be - * dropped as part of the same command anyway. - */ - if (rel->rd_rel->relispartition) + tuple = SearchSysCache1(RELOID, ObjectIdGetDatum(relid)); + if (((Form_pg_class) GETSTRUCT(tuple))->relispartition) { parentOid = get_partition_parent(relid); parent = heap_open(parentOid, AccessExclusiveLock); } + ReleaseSysCache(tuple); + + /* + * Open and lock the relation. + */ + rel = relation_open(relid, AccessExclusiveLock); + /* * There can no longer be anyone *else* touching the relation, but we * might still have open queries or cursors, or pending trigger events, in diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index d418d56b54..622a572580 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -271,6 +271,7 @@ struct DropRelationCallbackState { char relkind; Oid heapOid; + Oid partParentOid; bool concurrent; }; @@ -1041,6 +1042,7 @@ RemoveRelations(DropStmt *drop) /* Look up the appropriate relation using namespace search. */ state.relkind = relkind; state.heapOid = InvalidOid; + state.partParentOid = InvalidOid; state.concurrent = drop->concurrent; relOid = RangeVarGetRelidExtended(rel, lockmode, true, false, @@ -1070,6 +1072,8 @@ RemoveRelations(DropStmt *drop) /* * Before acquiring a table lock, check whether we have sufficient rights. * In the case of DROP INDEX, also try to lock the table before the index. + * Also, if the table to be dropped is a partition, we try to lock the parent + * first. */ static void RangeVarCallbackForDropRelation(const RangeVar *rel, Oid relOid, Oid oldRelOid, @@ -1079,6 +1083,7 @@ RangeVarCallbackForDropRelation(const RangeVar *rel, Oid relOid, Oid oldRelOid, struct DropRelationCallbackState *state; char relkind; char expected_relkind; + bool is_partition; Form_pg_class classform; LOCKMODE heap_lockmode; @@ -1098,6 +1103,17 @@ RangeVarCallbackForDropRelation(const RangeVar *rel, Oid relOid, Oid oldRelOid, state->heapOid = InvalidOid; } + /* + * Similarly, if we previously locked some other partition's heap, and + * the name we're looking up no longer refers to that relation, release + * the now-useless lock. + */ + if (relOid != oldRelOid && OidIsValid(state->partParentOid)) + { + UnlockRelationOid(state->partParentOid, AccessExclusiveLock); + state->partParentOid = InvalidOid; + } + /* Didn't find a relation, so no need for locking or permission checks. */ if (!OidIsValid(relOid)) return; @@ -1106,6 +1122,7 @@ RangeVarCallbackForDropRelation(const RangeVar *rel, Oid relOid, Oid oldRelOid, if (!HeapTupleIsValid(tuple)) return; /* concurrently dropped, so nothing to do */ classform = (Form_pg_class) GETSTRUCT(tuple); + is_partition = classform->relispartition; /* * Both RELKIND_RELATION and RELKIND_PARTITIONED_TABLE are OBJECT_TABLE, @@ -1149,6 +1166,19 @@ RangeVarCallbackForDropRelation(const RangeVar *rel, Oid relOid, Oid oldRelOid, if (OidIsValid(state->heapOid)) LockRelationOid(state->heapOid, heap_lockmode); } + + /* + * Similarly, if the relation is a partition, we must acquire lock on its + * parent before locking the partition. That's because queries lock the + * parent before its partitions, so we risk deadlock it we do it the other + * way around. + */ + if (is_partition && relOid != oldRelOid) + { + state->partParentOid = get_partition_parent(relOid); + if (OidIsValid(state->partParentOid)) + LockRelationOid(state->partParentOid, AccessExclusiveLock); + } } /* -- 2.11.0 --------------0A968423D0A4FFBA3931348C Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers --------------0A968423D0A4FFBA3931348C-- ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v51 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --r2slln3zpmilwu22 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v51-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
* [PATCH v52 05/10] invert meaning of index_create flag bit @ 2026-04-03 19:08 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 883+ messages in thread From: Álvaro Herrera @ 2026-04-03 19:08 UTC (permalink / raw) --- src/backend/catalog/index.c | 20 +++++++++++--------- src/backend/catalog/toasting.c | 2 +- src/backend/commands/indexcmds.c | 1 - src/include/catalog/index.h | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 4b8ed2c7660..5a7c9d81917 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -715,9 +715,9 @@ UpdateIndexRelation(Oid indexoid, * already exists. * INDEX_CREATE_PARTITIONED: * create a partitioned index (table must be partitioned) - * INDEX_CREATE_REPORT_PROGRESS: - * update the backend's progress information during index build. - + * INDEX_CREATE_SUPPRESS_PROGRESS: + * don't report progress during the index build. + * * constr_flags: flags passed to index_constraint_create * (only if INDEX_CREATE_ADD_CONSTRAINT is set) * allow_system_table_mods: allow table to be a system catalog @@ -763,7 +763,7 @@ index_create(Relation heapRelation, bool invalid = (flags & INDEX_CREATE_INVALID) != 0; bool concurrent = (flags & INDEX_CREATE_CONCURRENT) != 0; bool partitioned = (flags & INDEX_CREATE_PARTITIONED) != 0; - bool progress = (flags & INDEX_CREATE_REPORT_PROGRESS) != 0; + bool progress = (flags & INDEX_CREATE_SUPPRESS_PROGRESS) == 0; char relkind; TransactionId relfrozenxid; MultiXactId relminmxid; @@ -1454,13 +1454,15 @@ index_create_copy(Relation heapRelation, bool concurrently, } /* - * Note: The current callers do not need INDEX_CREATE_REPORT_PROGRESS. If - * 'concurrently' is true, there is no build at all. Otherwise the index - * build is a sub-command of REPACK. The current infrastructure does not - * allow two commands to report their progress at the same time. + * The current callers do not need to report progress: if 'concurrently' is + * true, there is no build at all to report about; and otherwise the index + * build is a sub-command of REPACK, and the current progress reporting + * infrastructure does not allow two commands to report their progress at + * the same time. */ if (concurrently) - flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT; + flags = INDEX_CREATE_SKIP_BUILD | INDEX_CREATE_CONCURRENT | + INDEX_CREATE_SUPPRESS_PROGRESS; /* * Now create the new index. diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index 51b27a8c71c..dcee536fd3f 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -332,7 +332,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, BTREE_AM_OID, rel->rd_rel->reltablespace, collationIds, opclassIds, NULL, coloptions, NULL, (Datum) 0, - INDEX_CREATE_IS_PRIMARY | INDEX_CREATE_REPORT_PROGRESS, 0, + INDEX_CREATE_IS_PRIMARY, 0, true, true, NULL); table_close(toast_rel, NoLock); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 932924c13e0..cba379810c7 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1231,7 +1231,6 @@ DefineIndex(ParseState *pstate, flags |= INDEX_CREATE_PARTITIONED; if (stmt->primary) flags |= INDEX_CREATE_IS_PRIMARY; - flags |= INDEX_CREATE_REPORT_PROGRESS; /* * If the table is partitioned, and recursion was declined but partitions diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 7ebe4f0bd87..9f538dac798 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,7 @@ extern void index_check_primary_key(Relation heapRel, #define INDEX_CREATE_IF_NOT_EXISTS (1 << 4) #define INDEX_CREATE_PARTITIONED (1 << 5) #define INDEX_CREATE_INVALID (1 << 6) -#define INDEX_CREATE_REPORT_PROGRESS (1 << 7) +#define INDEX_CREATE_SUPPRESS_PROGRESS (1 << 7) extern Oid index_create(Relation heapRelation, const char *indexRelationName, -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0006-Error-out-any-process-that-would-block-at-REPACK.patch" ^ permalink raw reply [nested|flat] 883+ messages in thread
end of thread, other threads:[~2026-04-03 19:08 UTC | newest] Thread overview: 883+ messages (download: mbox mbox.gz follow: Atom feed) -- links below jump to the message on this page -- 2017-04-03 06:37 [PATCH] Fix possibility of deadlock when dropping partitions amit <amitlangote09@gmail.com> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v51 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de> 2026-04-03 19:08 [PATCH v52 05/10] invert meaning of index_create flag bit Álvaro Herrera <alvherre@kurilemu.de>
This inbox is served by agora; see mirroring instructions for how to clone and mirror all data and code used for this inbox