IndexInfo *indexInfo;
volatile bool skipped_constraint = false;
PGRUsage ru0;
+ bool progress = (options & REINDEXOPT_REPORT_PROGRESS) != 0;
pg_rusage_init(&ru0);
heapId = IndexGetRelation(indexId, false);
heapRelation = table_open(heapId, ShareLock);
- pgstat_progress_start_command(PROGRESS_COMMAND_CREATE_INDEX,
- heapId);
- pgstat_progress_update_param(PROGRESS_CREATEIDX_COMMAND,
- PROGRESS_CREATEIDX_COMMAND_REINDEX);
- pgstat_progress_update_param(PROGRESS_CREATEIDX_INDEX_OID,
- indexId);
+ if (progress)
+ {
+ pgstat_progress_start_command(PROGRESS_COMMAND_CREATE_INDEX,
+ heapId);
+ pgstat_progress_update_param(PROGRESS_CREATEIDX_COMMAND,
+ PROGRESS_CREATEIDX_COMMAND_REINDEX);
+ pgstat_progress_update_param(PROGRESS_CREATEIDX_INDEX_OID,
+ indexId);
+ }
/*
* Open the target index relation and get an exclusive lock on it, to
*/
iRel = index_open(indexId, AccessExclusiveLock);
- pgstat_progress_update_param(PROGRESS_CREATEIDX_ACCESS_METHOD_OID,
- iRel->rd_rel->relam);
+ if (progress)
+ pgstat_progress_update_param(PROGRESS_CREATEIDX_ACCESS_METHOD_OID,
+ iRel->rd_rel->relam);
/*
* The case of reindexing partitioned tables and indexes is handled
errdetail_internal("%s",
pg_rusage_show(&ru0))));
- pgstat_progress_end_command();
+ if (progress)
+ pgstat_progress_end_command();
/* Close rels, but keep locks */
index_close(iRel, NoLock);
result = reindex_relation(heapOid,
REINDEX_REL_PROCESS_TOAST |
REINDEX_REL_CHECK_CONSTRAINTS,
- options);
+ options | REINDEXOPT_REPORT_PROGRESS);
if (!result)
ereport(NOTICE,
(errmsg("table \"%s\" has no indexes to reindex",
result = reindex_relation(relid,
REINDEX_REL_PROCESS_TOAST |
REINDEX_REL_CHECK_CONSTRAINTS,
- options);
+ options | REINDEXOPT_REPORT_PROGRESS);
if (result && (options & REINDEXOPT_VERBOSE))
ereport(INFO,