mirror of
https://github.com/postgres/postgres.git
synced 2025-06-20 15:22:23 +03:00
Code review for transaction-safe-TRUNCATE patch: minor cleanups.
This commit is contained in:
@ -11,7 +11,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/commands/cluster.c,v 1.103 2002/12/30 18:42:13 tgl Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/commands/cluster.c,v 1.104 2002/12/30 19:45:15 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -26,7 +26,6 @@
|
||||
#include "catalog/index.h"
|
||||
#include "catalog/indexing.h"
|
||||
#include "catalog/namespace.h"
|
||||
#include "catalog/pg_constraint.h"
|
||||
#include "commands/cluster.h"
|
||||
#include "commands/tablecmds.h"
|
||||
#include "miscadmin.h"
|
||||
@ -111,9 +110,9 @@ cluster(ClusterStmt *stmt)
|
||||
RelToCluster rvtc;
|
||||
|
||||
/* Find and lock the table */
|
||||
tableOid = RangeVarGetRelid(stmt->relation, false);
|
||||
rel = heap_openrv(stmt->relation, AccessExclusiveLock);
|
||||
|
||||
rel = heap_open(tableOid, AccessExclusiveLock);
|
||||
tableOid = RelationGetRelid(rel);
|
||||
|
||||
/* Check permissions */
|
||||
if (!check_cluster_permitted(tableOid))
|
||||
@ -325,6 +324,13 @@ cluster_rel(RelToCluster *rvtc, bool recheck)
|
||||
elog(ERROR, "CLUSTER: cannot cluster system relation \"%s\"",
|
||||
RelationGetRelationName(OldHeap));
|
||||
|
||||
/*
|
||||
* Don't allow cluster on temp tables of other backends ... their
|
||||
* local buffer manager is not going to cope.
|
||||
*/
|
||||
if (isOtherTempNamespace(RelationGetNamespace(OldHeap)))
|
||||
elog(ERROR, "CLUSTER cannot be used on temp tables of other processes");
|
||||
|
||||
/* Drop relcache refcnt on OldIndex, but keep lock */
|
||||
index_close(OldIndex);
|
||||
|
||||
|
Reference in New Issue
Block a user