aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands/cluster.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/commands/cluster.c')
-rw-r--r--src/backend/commands/cluster.c21
1 files changed, 6 insertions, 15 deletions
diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c
index ff3ac9f8e55..9362c8f2496 100644
--- a/src/backend/commands/cluster.c
+++ b/src/backend/commands/cluster.c
@@ -15,7 +15,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/cluster.c,v 1.84 2002/08/10 20:43:46 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/cluster.c,v 1.85 2002/08/10 21:00:34 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -29,12 +29,9 @@
#include "catalog/index.h"
#include "catalog/indexing.h"
#include "catalog/catname.h"
-#include "catalog/pg_index.h"
-#include "catalog/pg_proc.h"
#include "commands/cluster.h"
#include "commands/tablecmds.h"
#include "miscadmin.h"
-#include "utils/builtins.h"
#include "utils/fmgroids.h"
#include "utils/lsyscache.h"
#include "utils/syscache.h"
@@ -81,8 +78,6 @@ Relation RelationIdGetRelation(Oid relationId);
* AccessExclusiveLock right before swapping the filenodes.
* This would allow users to CLUSTER on a regular basis,
* practically eliminating the need for auto-clustered indexes.
- *
- * Preserve constraint bit for the indexes.
*/
void
cluster(RangeVar *oldrelation, char *oldindexname)
@@ -349,9 +344,6 @@ recreate_indexattr(Oid OIDOldHeap, List *indexes)
swap_relfilenodes(newIndexOID, attrs->indexOID);
setRelhasindex(OIDOldHeap, true, attrs->isPrimary, InvalidOid);
- /* I'm not sure this one is needed, but let's be safe. */
- CommandCounterIncrement();
-
/* Destroy new index with old filenode */
object.classId = RelOid_pg_class;
object.objectId = newIndexOID;
@@ -380,11 +372,11 @@ swap_relfilenodes(Oid r1, Oid r2)
* it every time.
*/
Relation relRelation,
- irels[Num_pg_class_indices],
rel;
HeapTuple reltup[2];
Oid tempRFNode;
int i;
+ CatalogIndexState indstate;
/* We need both RelationRelationName tuples. */
relRelation = heap_openr(RelationRelationName, RowExclusiveLock);
@@ -429,11 +421,10 @@ swap_relfilenodes(Oid r1, Oid r2)
simple_heap_update(relRelation, &reltup[0]->t_self, reltup[0]);
/* To keep system catalogs current. */
- CatalogOpenIndices(Num_pg_class_indices, Name_pg_class_indices, irels);
- CatalogIndexInsert(irels, Num_pg_class_indices, relRelation, reltup[1]);
- CatalogIndexInsert(irels, Num_pg_class_indices, relRelation, reltup[0]);
- CatalogCloseIndices(Num_pg_class_indices, irels);
- CommandCounterIncrement();
+ indstate = CatalogOpenIndexes(relRelation);
+ CatalogIndexInsert(indstate, reltup[1]);
+ CatalogIndexInsert(indstate, reltup[0]);
+ CatalogCloseIndexes(indstate);
heap_close(relRelation, NoLock);
heap_freetuple(reltup[0]);