Re: index_build does not need its isprimary argument

2019-01-23 Thread Michael Paquier
On Tue, Jan 22, 2019 at 05:08:52PM +0900, Michael Paquier wrote:
> While working on REINDEX CONCURRENTLY, I have noticed that
> index_build() does not need its argument isprimary.  Perhaps it is
> not worth bothering, but for the REINDEX CONCURRENTLY business this
> removes the need to open an index when triggering a concurrent
> build.
> 
> The flag was introduced in 3fdeb189, but f66e8bf actually forgot to
> finish the cleanup as index_update_stats() has simplified its
> interface.

And committed as of 289198c, and back to the real deal..
--
Michael


signature.asc
Description: PGP signature


index_build does not need its isprimary argument

2019-01-22 Thread Michael Paquier
Hi all,

While working on REINDEX CONCURRENTLY, I have noticed that
index_build() does not need its argument isprimary.  Perhaps it is
not worth bothering, but for the REINDEX CONCURRENTLY business this
removes the need to open an index when triggering a concurrent
build.

The flag was introduced in 3fdeb189, but f66e8bf actually forgot to
finish the cleanup as index_update_stats() has simplified its
interface.

Are there any objections if I cleanup that stuff as per the attached?

Thanks,
--
Michael
diff --git a/src/backend/bootstrap/bootstrap.c b/src/backend/bootstrap/bootstrap.c
index 6677926ae6..4d7ed8ad1a 100644
--- a/src/backend/bootstrap/bootstrap.c
+++ b/src/backend/bootstrap/bootstrap.c
@@ -1130,7 +1130,7 @@ build_indices(void)
 		heap = table_open(ILHead->il_heap, NoLock);
 		ind = index_open(ILHead->il_ind, NoLock);
 
-		index_build(heap, ind, ILHead->il_info, false, false, false);
+		index_build(heap, ind, ILHead->il_info, false, false);
 
 		index_close(ind, NoLock);
 		table_close(heap, NoLock);
diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c
index 1153688a1c..cc865de627 100644
--- a/src/backend/catalog/heap.c
+++ b/src/backend/catalog/heap.c
@@ -3063,7 +3063,7 @@ RelationTruncateIndexes(Relation heapRelation)
 
 		/* Initialize the index and rebuild */
 		/* Note: we do not need to re-establish pkey setting */
-		index_build(heapRelation, currentIndex, indexInfo, false, true, false);
+		index_build(heapRelation, currentIndex, indexInfo, true, false);
 
 		/* We're done with this index */
 		index_close(currentIndex, NoLock);
diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c
index 5ca0b1eb96..225c078018 100644
--- a/src/backend/catalog/index.c
+++ b/src/backend/catalog/index.c
@@ -1189,8 +1189,7 @@ index_create(Relation heapRelation,
 	}
 	else
 	{
-		index_build(heapRelation, indexRelation, indexInfo, isprimary, false,
-	true);
+		index_build(heapRelation, indexRelation, indexInfo, false, true);
 	}
 
 	/*
@@ -2220,13 +2219,9 @@ index_update_stats(Relation rel,
  * entries of the index and heap relation as needed, using statistics
  * returned by ambuild as well as data passed by the caller.
  *
- * isprimary tells whether to mark the index as a primary-key index.
  * isreindex indicates we are recreating a previously-existing index.
  * parallel indicates if parallelism may be useful.
  *
- * Note: when reindexing an existing index, isprimary can be false even if
- * the index is a PK; it's already properly marked and need not be re-marked.
- *
  * Note: before Postgres 8.2, the passed-in heap and index Relations
  * were automatically closed by this routine.  This is no longer the case.
  * The caller opened 'em, and the caller should close 'em.
@@ -2235,7 +2230,6 @@ void
 index_build(Relation heapRelation,
 			Relation indexRelation,
 			IndexInfo *indexInfo,
-			bool isprimary,
 			bool isreindex,
 			bool parallel)
 {
@@ -3702,7 +3696,7 @@ reindex_index(Oid indexId, bool skip_constraint_checks, char persistence,
 
 		/* Initialize the index and rebuild */
 		/* Note: we do not need to re-establish pkey setting */
-		index_build(heapRelation, iRel, indexInfo, false, true, true);
+		index_build(heapRelation, iRel, indexInfo, true, true);
 	}
 	PG_CATCH();
 	{
diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c
index 3edc94308e..5b2b8d2969 100644
--- a/src/backend/commands/indexcmds.c
+++ b/src/backend/commands/indexcmds.c
@@ -1168,7 +1168,7 @@ DefineIndex(Oid relationId,
 	indexInfo->ii_BrokenHotChain = false;
 
 	/* Now build the index */
-	index_build(rel, indexRelation, indexInfo, stmt->primary, false, true);
+	index_build(rel, indexRelation, indexInfo, false, true);
 
 	/* Close both the relations, but keep the locks */
 	table_close(rel, NoLock);
diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h
index 8daac5663c..330c481a8b 100644
--- a/src/include/catalog/index.h
+++ b/src/include/catalog/index.h
@@ -107,7 +107,6 @@ extern void FormIndexDatum(IndexInfo *indexInfo,
 extern void index_build(Relation heapRelation,
 			Relation indexRelation,
 			IndexInfo *indexInfo,
-			bool isprimary,
 			bool isreindex,
 			bool parallel);
 


signature.asc
Description: PGP signature