]> granicus.if.org Git - postgresql/commitdiff
Hmm, guess I forgot to commit this file the other day ...
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 30 Sep 1999 01:12:36 +0000 (01:12 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
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;