From: Massimo Dal Zotto <dz@cs.unitn.it>
authorMarc G. Fournier <scrappy@hub.org>
Tue, 25 Aug 1998 21:24:12 +0000 (21:24 +0000)
committerMarc G. Fournier <scrappy@hub.org>
Tue, 25 Aug 1998 21:24:12 +0000 (21:24 +0000)
> ps-status.patch
>
>       macros for ps status, used by postgres.c and utility.c.
>       Unfortunately ps status is system dependent and the current
>       code doesn't work on linux. The use of macros confines system
>       dependency to into one file (ps-status.h). Users of other
>       operating systems should check this code and submit new macros.

src/backend/tcop/pquery.c
src/backend/tcop/utility.c
src/backend/utils/init/globals.c
src/include/miscadmin.h

index db4cae71ebe8483dac9748a6747a3a4d06f49b29..5220ac7700bb195f80eaeb4c5295ced92cd23f6d 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/tcop/pquery.c,v 1.16 1998/06/04 17:26:47 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/tcop/pquery.c,v 1.17 1998/08/25 21:24:07 scrappy Exp $
  *
  *-------------------------------------------------------------------------
  */
 #include "executor/execdesc.h"
 #include "executor/executor.h"
 #include "tcop/pquery.h"
+#include "utils/ps_status.h"
 
 #include "commands/command.h"
 
 static char *CreateOperationTag(int operationType);
 static void ProcessQueryDesc(QueryDesc *queryDesc);
 
-extern const char **ps_status; /* from postgres.c */
-
 
 /* ----------------------------------------------------------------
  *             CreateQueryDesc
@@ -228,7 +227,7 @@ ProcessQueryDesc(QueryDesc *queryDesc)
        plan = queryDesc->plantree;
 
        operation = queryDesc->operation;
-       *ps_status = tag = CreateOperationTag(operation);
+       PS_SET_STATUS( tag = CreateOperationTag(operation) );
        dest = queryDesc->dest;
 
        /* ----------------
index 4fb548b34b9232959c382e166105ccb3751b2e2f..dba3403e6b3ecf89c0a6226ab0d655e56c7abe63 100644 (file)
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/tcop/utility.c,v 1.46 1998/08/24 01:13:50 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/tcop/utility.c,v 1.47 1998/08/25 21:24:09 scrappy Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -49,6 +49,7 @@
 #include "tcop/utility.h"
 #include "fmgr.h"                              /* For load_file() */
 #include "storage/fd.h"
+#include "utils/ps_status.h"
 
 #ifndef NO_SECURITY
 #include "miscadmin.h"
@@ -60,8 +61,6 @@ void          DefineUser(CreateUserStmt *stmt);
 void           AlterUser(AlterUserStmt *stmt);
 void           RemoveUser(char *username);
 
-extern const char **ps_status; /* from postgres.c */
-
 /* ----------------
  *             CHECK_IF_ABORTED() is used to avoid doing unnecessary
  *             processing within an aborted transaction block.
@@ -109,18 +108,18 @@ ProcessUtility(Node *parsetree,
                                switch (stmt->command)
                                {
                                        case BEGIN_TRANS:
-                                               *ps_status = commandTag = "BEGIN";
+                                               PS_SET_STATUS( commandTag = "BEGIN" );
                                                CHECK_IF_ABORTED();
                                                BeginTransactionBlock();
                                                break;
 
                                        case END_TRANS:
-                                               *ps_status = commandTag = "END";
+                                               PS_SET_STATUS( commandTag = "END" );
                                                EndTransactionBlock();
                                                break;
 
                                        case ABORT_TRANS:
-                                               *ps_status = commandTag = "ABORT";
+                                               PS_SET_STATUS( commandTag = "ABORT" );
                                                UserAbortTransactionBlock();
                                                break;
                                }
@@ -135,7 +134,7 @@ ProcessUtility(Node *parsetree,
                        {
                                ClosePortalStmt *stmt = (ClosePortalStmt *) parsetree;
 
-                               *ps_status = commandTag = "CLOSE";
+                               PS_SET_STATUS( commandTag = "CLOSE" );
                                CHECK_IF_ABORTED();
 
                                PerformPortalClose(stmt->portalname, dest);
@@ -149,7 +148,7 @@ ProcessUtility(Node *parsetree,
                                bool            forward;
                                int                     count;
 
-                               *ps_status = commandTag = (stmt->ismove) ? "MOVE" : "FETCH";
+                               PS_SET_STATUS( commandTag = (stmt->ismove) ? "MOVE" : "FETCH" );
                                CHECK_IF_ABORTED();
 
                                forward = (bool) (stmt->direction == FORWARD);
@@ -170,7 +169,7 @@ ProcessUtility(Node *parsetree,
                         *
                         */
                case T_CreateStmt:
-                       *ps_status = commandTag = "CREATE";
+                       PS_SET_STATUS( commandTag = "CREATE" );
                        CHECK_IF_ABORTED();
 
                        DefineRelation((CreateStmt *) parsetree, RELKIND_RELATION);
@@ -183,7 +182,7 @@ ProcessUtility(Node *parsetree,
                                List       *args = stmt->relNames;
                                Relation        rel;
 
-                               *ps_status = commandTag = "DROP";
+                               PS_SET_STATUS( commandTag = "DROP" );
                                CHECK_IF_ABORTED();
 
                                foreach(arg, args)
@@ -223,7 +222,7 @@ ProcessUtility(Node *parsetree,
                        {
                                CopyStmt   *stmt = (CopyStmt *) parsetree;
 
-                               *ps_status = commandTag = "COPY";
+                               PS_SET_STATUS( commandTag = "COPY" );
                                CHECK_IF_ABORTED();
 
                                DoCopy(stmt->relname,
@@ -245,7 +244,7 @@ ProcessUtility(Node *parsetree,
                        {
                                AddAttrStmt *stmt = (AddAttrStmt *) parsetree;
 
-                               *ps_status = commandTag = "ADD";
+                               PS_SET_STATUS( commandTag = "ADD" );
                                CHECK_IF_ABORTED();
 
                                /*
@@ -266,7 +265,7 @@ ProcessUtility(Node *parsetree,
                        {
                                RenameStmt *stmt = (RenameStmt *) parsetree;
 
-                               *ps_status = commandTag = "RENAME";
+                               PS_SET_STATUS( commandTag = "RENAME" );
                                CHECK_IF_ABORTED();
 
                                relname = stmt->relname;
@@ -324,7 +323,7 @@ ProcessUtility(Node *parsetree,
                                AclItem    *aip;
                                unsigned        modechg;
 
-                               *ps_status = commandTag = "CHANGE";
+                               PS_SET_STATUS( commandTag = "CHANGE" );
                                CHECK_IF_ABORTED();
 
                                aip = stmt->aclitem;
@@ -357,7 +356,7 @@ ProcessUtility(Node *parsetree,
                        {
                                DefineStmt *stmt = (DefineStmt *) parsetree;
 
-                               *ps_status = commandTag = "CREATE";
+                               PS_SET_STATUS( commandTag = "CREATE" );
                                CHECK_IF_ABORTED();
 
                                switch (stmt->defType)
@@ -381,14 +380,14 @@ ProcessUtility(Node *parsetree,
                        {
                                ViewStmt   *stmt = (ViewStmt *) parsetree;
 
-                               *ps_status = commandTag = "CREATE";
+                               PS_SET_STATUS( commandTag = "CREATE" );
                                CHECK_IF_ABORTED();
                                DefineView(stmt->viewname, stmt->query);                /* retrieve parsetree */
                        }
                        break;
 
                case T_ProcedureStmt:   /* CREATE FUNCTION */
-                       *ps_status = commandTag = "CREATE";
+                       PS_SET_STATUS( commandTag = "CREATE" );
                        CHECK_IF_ABORTED();
                        CreateFunction((ProcedureStmt *) parsetree, dest);      /* everything */
                        break;
@@ -397,7 +396,7 @@ ProcessUtility(Node *parsetree,
                        {
                                IndexStmt  *stmt = (IndexStmt *) parsetree;
 
-                               *ps_status = commandTag = "CREATE";
+                               PS_SET_STATUS( commandTag = "CREATE" );
                                CHECK_IF_ABORTED();
                                DefineIndex(stmt->relname,              /* relation name */
                                                        stmt->idxname,          /* index name */
@@ -421,14 +420,14 @@ ProcessUtility(Node *parsetree,
                                if (aclcheck_result != ACLCHECK_OK)
                                        elog(ERROR, "%s: %s", relname, aclcheck_error_strings[aclcheck_result]);
 #endif
-                               *ps_status = commandTag = "CREATE";
+                               PS_SET_STATUS( commandTag = "CREATE" );
                                CHECK_IF_ABORTED();
                                DefineQueryRewrite(stmt);
                        }
                        break;
 
                case T_CreateSeqStmt:
-                       *ps_status = commandTag = "CREATE";
+                       PS_SET_STATUS( commandTag = "CREATE" );
                        CHECK_IF_ABORTED();
 
                        DefineSequence((CreateSeqStmt *) parsetree);
@@ -438,7 +437,7 @@ ProcessUtility(Node *parsetree,
                        {
                                ExtendStmt *stmt = (ExtendStmt *) parsetree;
 
-                               *ps_status = commandTag = "EXTEND";
+                               PS_SET_STATUS( commandTag = "EXTEND" );
                                CHECK_IF_ABORTED();
 
                                ExtendIndex(stmt->idxname,              /* index name */
@@ -451,7 +450,7 @@ ProcessUtility(Node *parsetree,
                        {
                                RemoveStmt *stmt = (RemoveStmt *) parsetree;
 
-                               *ps_status = commandTag = "DROP";
+                               PS_SET_STATUS( commandTag = "DROP" );
                                CHECK_IF_ABORTED();
 
                                switch (stmt->removeType)
@@ -513,7 +512,7 @@ ProcessUtility(Node *parsetree,
                        {
                                RemoveAggrStmt *stmt = (RemoveAggrStmt *) parsetree;
 
-                               *ps_status = commandTag = "DROP";
+                               PS_SET_STATUS( commandTag = "DROP" );
                                CHECK_IF_ABORTED();
                                RemoveAggregate(stmt->aggname, stmt->aggtype);
                        }
@@ -523,7 +522,7 @@ ProcessUtility(Node *parsetree,
                        {
                                RemoveFuncStmt *stmt = (RemoveFuncStmt *) parsetree;
 
-                               *ps_status = commandTag = "DROP";
+                               PS_SET_STATUS( commandTag = "DROP" );
                                CHECK_IF_ABORTED();
                                RemoveFunction(stmt->funcname,
                                                           length(stmt->args),
@@ -537,7 +536,7 @@ ProcessUtility(Node *parsetree,
                                char       *type1 = (char *) NULL;
                                char       *type2 = (char *) NULL;
 
-                               *ps_status = commandTag = "DROP";
+                               PS_SET_STATUS( commandTag = "DROP" );
                                CHECK_IF_ABORTED();
 
                                if (lfirst(stmt->args) != NULL)
@@ -556,7 +555,7 @@ ProcessUtility(Node *parsetree,
                        {
                                CreatedbStmt *stmt = (CreatedbStmt *) parsetree;
 
-                               *ps_status = commandTag = "CREATEDB";
+                               PS_SET_STATUS( commandTag = "CREATEDB" );
                                CHECK_IF_ABORTED();
                                createdb(stmt->dbname, stmt->dbpath, stmt->encoding);
                        }
@@ -566,7 +565,7 @@ ProcessUtility(Node *parsetree,
                        {
                                DestroydbStmt *stmt = (DestroydbStmt *) parsetree;
 
-                               *ps_status = commandTag = "DESTROYDB";
+                               PS_SET_STATUS( commandTag = "DESTROYDB" );
                                CHECK_IF_ABORTED();
                                destroydb(stmt->dbname);
                        }
@@ -577,7 +576,7 @@ ProcessUtility(Node *parsetree,
                        {
                                NotifyStmt *stmt = (NotifyStmt *) parsetree;
 
-                               *ps_status = commandTag = "NOTIFY";
+                               PS_SET_STATUS( commandTag = "NOTIFY" );
                                CHECK_IF_ABORTED();
 
                                Async_Notify(stmt->relname);
@@ -588,7 +587,7 @@ ProcessUtility(Node *parsetree,
                        {
                                ListenStmt *stmt = (ListenStmt *) parsetree;
 
-                               *ps_status = commandTag = "LISTEN";
+                               PS_SET_STATUS( commandTag = "LISTEN" );
                                CHECK_IF_ABORTED();
 
                                Async_Listen(stmt->relname, MyProcPid);
@@ -605,7 +604,7 @@ ProcessUtility(Node *parsetree,
                                FILE       *fp;
                                char       *filename;
 
-                               *ps_status = commandTag = "LOAD";
+                               PS_SET_STATUS( commandTag = "LOAD" );
                                CHECK_IF_ABORTED();
 
                                filename = stmt->filename;
@@ -621,7 +620,7 @@ ProcessUtility(Node *parsetree,
                        {
                                ClusterStmt *stmt = (ClusterStmt *) parsetree;
 
-                               *ps_status = commandTag = "CLUSTER";
+                               PS_SET_STATUS( commandTag = "CLUSTER" );
                                CHECK_IF_ABORTED();
 
                                cluster(stmt->relname, stmt->indexname);
@@ -629,7 +628,7 @@ ProcessUtility(Node *parsetree,
                        break;
 
                case T_VacuumStmt:
-                       *ps_status = commandTag = "VACUUM";
+                       PS_SET_STATUS( commandTag = "VACUUM" );
                        CHECK_IF_ABORTED();
                        vacuum(((VacuumStmt *) parsetree)->vacrel,
                                   ((VacuumStmt *) parsetree)->verbose,
@@ -641,7 +640,7 @@ ProcessUtility(Node *parsetree,
                        {
                                ExplainStmt *stmt = (ExplainStmt *) parsetree;
 
-                               *ps_status = commandTag = "EXPLAIN";
+                               PS_SET_STATUS( commandTag = "EXPLAIN" );
                                CHECK_IF_ABORTED();
 
                                ExplainQuery(stmt->query, stmt->verbose, dest);
@@ -655,7 +654,7 @@ ProcessUtility(Node *parsetree,
                        {
                                RecipeStmt *stmt = (RecipeStmt *) parsetree;
 
-                               *ps_status = commandTag = "EXECUTE RECIPE";
+                               PS_SET_STATUS( commandTag = "EXECUTE RECIPE" );
                                CHECK_IF_ABORTED();
                                beginRecipe(stmt);
                        }
@@ -669,7 +668,7 @@ ProcessUtility(Node *parsetree,
                                VariableSetStmt *n = (VariableSetStmt *) parsetree;
 
                                SetPGVariable(n->name, n->value);
-                               *ps_status = commandTag = "SET VARIABLE";
+                               PS_SET_STATUS( commandTag = "SET VARIABLE" );
                        }
                        break;
 
@@ -678,7 +677,7 @@ ProcessUtility(Node *parsetree,
                                VariableShowStmt *n = (VariableShowStmt *) parsetree;
 
                                GetPGVariable(n->name);
-                               *ps_status = commandTag = "SHOW VARIABLE";
+                               PS_SET_STATUS( commandTag = "SHOW VARIABLE" );
                        }
                        break;
 
@@ -687,7 +686,7 @@ ProcessUtility(Node *parsetree,
                                VariableResetStmt *n = (VariableResetStmt *) parsetree;
 
                                ResetPGVariable(n->name);
-                               *ps_status = commandTag = "RESET VARIABLE";
+                               PS_SET_STATUS( commandTag = "RESET VARIABLE" );
                        }
                        break;
 
@@ -695,14 +694,14 @@ ProcessUtility(Node *parsetree,
                         * ******************************** TRIGGER statements *******************************
                         */
                case T_CreateTrigStmt:
-                       *ps_status = commandTag = "CREATE";
+                       PS_SET_STATUS( commandTag = "CREATE" );
                        CHECK_IF_ABORTED();
 
                        CreateTrigger((CreateTrigStmt *) parsetree);
                        break;
 
                case T_DropTrigStmt:
-                       *ps_status = commandTag = "DROP";
+                       PS_SET_STATUS( commandTag = "DROP" );
                        CHECK_IF_ABORTED();
 
                        DropTrigger((DropTrigStmt *) parsetree);
@@ -712,14 +711,14 @@ ProcessUtility(Node *parsetree,
                         * ************* PROCEDURAL LANGUAGE statements *****************
                         */
                case T_CreatePLangStmt:
-                       *ps_status = commandTag = "CREATE";
+                       PS_SET_STATUS( commandTag = "CREATE" );
                        CHECK_IF_ABORTED();
 
                        CreateProceduralLanguage((CreatePLangStmt *) parsetree);
                        break;
 
                case T_DropPLangStmt:
-                       *ps_status = commandTag = "DROP";
+                       PS_SET_STATUS( commandTag = "DROP" );
                        CHECK_IF_ABORTED();
 
                        DropProceduralLanguage((DropPLangStmt *) parsetree);
@@ -730,21 +729,21 @@ ProcessUtility(Node *parsetree,
                         *
                         */
                case T_CreateUserStmt:
-                       *ps_status = commandTag = "CREATE USER";
+                       PS_SET_STATUS( commandTag = "CREATE USER" );
                        CHECK_IF_ABORTED();
 
                        DefineUser((CreateUserStmt *) parsetree);
                        break;
 
                case T_AlterUserStmt:
-                       *ps_status = commandTag = "ALTER USER";
+                       PS_SET_STATUS( commandTag = "ALTER USER" );
                        CHECK_IF_ABORTED();
 
                        AlterUser((AlterUserStmt *) parsetree);
                        break;
 
                case T_DropUserStmt:
-                       *ps_status = commandTag = "DROP USER";
+                       PS_SET_STATUS( commandTag = "DROP USER" );
                        CHECK_IF_ABORTED();
 
                        RemoveUser(((DropUserStmt *) parsetree)->user);
index 585471d37f66ca03e4aa0bd3eaa80310f891babd..60dabd605dedc9457d157abbede1561d18fe2f87 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/utils/init/globals.c,v 1.24 1998/07/09 03:28:51 scrappy Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/utils/init/globals.c,v 1.25 1998/08/25 21:24:10 scrappy Exp $
  *
  * NOTES
  *       Globals used all over the place should be declared here and not
@@ -43,7 +43,7 @@ bool          Quiet = false;
 bool           QueryCancel = false;
 
 int                    MyProcPid;
-
+struct Port *MyProcPort;
 long           MyCancelKey;
 
 char      *DataDir;
index 3183185ca31aeb9fcf8b2197d09db1e143483559..e2632d63e6ce0c263fa4c86df069857eaeaacdd8 100644 (file)
@@ -11,7 +11,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: miscadmin.h,v 1.31 1998/08/24 01:14:07 momjian Exp $
+ * $Id: miscadmin.h,v 1.32 1998/08/25 21:24:12 scrappy Exp $
  *
  * NOTES
  *       some of the information in this file will be moved to
@@ -41,7 +41,7 @@ extern bool   QueryCancel;
 extern char *DataDir;
 
 extern int     MyProcPid;
-
+extern struct Port     *MyProcPort;
 extern long    MyCancelKey;
 
 extern char OutputFileName[];