Hmm, guess I forgot to commit this file the other day ...
authorTom Lane
Thu, 30 Sep 1999 01:12:36 +0000 (01:12 +0000)
committerTom Lane
Thu, 30 Sep 1999 01:12:36 +0000 (01:12 +0000)
just some cosmetic changes now, Vadim already fixed the heap_xxx calls.

src/backend/tcop/utility.c

index 18609201169b324827101573a4df19eed331acfd..0b8d1efcdde034244edb48828b9c0af37ddaee9b 100644 (file)
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/tcop/utility.c,v 1.68 1999/09/29 16:06:11 wieck Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/tcop/utility.c,v 1.69 1999/09/30 01:12:36 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -206,35 +206,30 @@ ProcessUtility(Node *parsetree,
            }
            break;
 
-       case T_TruncateStmt:     
-               {
+       case T_TruncateStmt:
+           {
+               Relation    rel;
 
-             Relation  rel;
+               PS_SET_STATUS(commandTag = "TRUNCATE");
+               CHECK_IF_ABORTED();
 
-             PS_SET_STATUS(commandTag = "TRUNCATE");
-             CHECK_IF_ABORTED();       
+               relname = ((TruncateStmt *) parsetree)->relName;            
+               if (!allowSystemTableMods && IsSystemRelationName(relname))
+                   elog(ERROR, "TRUNCATE cannot be used on system tables. '%s' is a system table",
+                        relname);
 
-             relname = ((TruncateStmt *) parsetree)->relName;            
-             if (!allowSystemTableMods && IsSystemRelationName(relname)) {
-               elog(ERROR, "TRUNCATE cannot be used on system tables. '%s' is a system table", 
-                relname);
-             }           
-             
-             rel = heap_openr(relname, AccessExclusiveLock);
-             if (RelationIsValid(rel)) {
-               if (rel->rd_rel->relkind == RELKIND_SEQUENCE) {
-                 elog(ERROR, "TRUNCATE cannot be used on sequences. '%s' is a sequence", 
-                  relname);
-               }               
+               /* Grab exclusive lock in preparation for truncate... */
+               rel = heap_openr(relname, AccessExclusiveLock);
+               if (rel->rd_rel->relkind == RELKIND_SEQUENCE)
+                   elog(ERROR, "TRUNCATE cannot be used on sequences. '%s' is a sequence",
+                        relname);
                heap_close(rel, NoLock);
-             }
+
 #ifndef NO_SECURITY
-             if (!pg_ownercheck(userName, relname, RELNAME)) {
-               elog(ERROR, "you do not own class \"%s\"", relname);
-             }
+               if (!pg_ownercheck(userName, relname, RELNAME))
+                   elog(ERROR, "you do not own class \"%s\"", relname);
 #endif
-             TruncateRelation(((TruncateStmt *) parsetree)->relName);
-             
+               TruncateRelation(relname);
            }
            break;