Show backend status on ps command line. Remove unused args from
authorBruce Momjian <bruce@momjian.us>
Thu, 4 Jun 1998 17:26:49 +0000 (17:26 +0000)
committerBruce Momjian <bruce@momjian.us>
Thu, 4 Jun 1998 17:26:49 +0000 (17:26 +0000)
pg_exec_query().

12 files changed:
src/backend/commands/_deadcode/version.c
src/backend/commands/dbcommands.c
src/backend/commands/user.c
src/backend/libpq/be-pqexec.c
src/backend/main/main.c
src/backend/postmaster/postmaster.c
src/backend/rewrite/rewriteDefine.c
src/backend/tcop/postgres.c
src/backend/tcop/pquery.c
src/backend/tcop/utility.c
src/include/tcop/pquery.h
src/include/tcop/tcopprot.h

index 1522bc40e1392df7e4c9f5991c26100814c35a9a..7ae5a716013e1d401e15ff8886e1c575b513b3e4 100644 (file)
@@ -10,7 +10,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/commands/_deadcode/Attic/version.c,v 1.11 1998/01/05 16:39:07 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/commands/_deadcode/Attic/version.c,v 1.12 1998/06/04 17:26:38 momjian Exp $
  *
  * NOTES
  *       At the point the version is defined, 2 physical relations are created
@@ -95,7 +95,7 @@ eval_as_new_xact(char *query)
         * CommitTransactionCommand(); StartTransactionCommand();
         */
        CommandCounterIncrement();
-       pg_exec_query(query, (char **) NULL, (Oid *) NULL, 0);
+       pg_exec_query(query);
 }
 
 #endif
@@ -157,7 +157,7 @@ VersionCreate(char *vname, char *bname)
        sprintf(query_buf, "SELECT * INTO TABLE %s from %s where 1 =2",
                        vname, bname);
 
-       pg_exec_query(query_buf, (char **) NULL, (Oid *) NULL, 0);
+       pg_exec_query(query_buf);
 
        /*
         * Creating the ``v_added'' relation
index 44b19650e08c0c0ee5ea4cf8382aea6ae010b917..40cdd4d94e13143f01da2ce9575809e093ca6c0d 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/commands/dbcommands.c,v 1.13 1998/04/27 04:05:11 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/commands/dbcommands.c,v 1.14 1998/06/04 17:26:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -95,7 +95,7 @@ createdb(char *dbname, char *dbpath)
        sprintf(buf, "insert into pg_database (datname, datdba, datpath)"
                        " values (\'%s\', \'%d\', \'%s\');", dbname, user_id, loc);
 
-       pg_exec_query(buf, (char **) NULL, (Oid *) NULL, 0);
+       pg_exec_query(buf);
 }
 
 void
@@ -133,7 +133,7 @@ destroydb(char *dbname)
         */
        sprintf(buf, "delete from pg_database where pg_database.oid = \'%d\'::oid",
                        db_id);
-       pg_exec_query(buf, (char **) NULL, (Oid *) NULL, 0);
+       pg_exec_query(buf);
 
        /*
         * remove the data directory. If the DELETE above failed, this will
index a5b1715be42d1541c05a2e30d2c17b99e16b38c0..1f43be77d5dc72553b730fac68f775c249ea4d23 100644 (file)
@@ -65,7 +65,7 @@ UpdatePgPwdFile(char *sql)
         * file to its final name.
         */
        sprintf(sql, "copy %s to '%s' using delimiters %s", ShadowRelationName, tempname, CRYPT_PWD_FILE_SEPCHAR);
-       pg_exec_query(sql, (char **) NULL, (Oid *) NULL, 0);
+       pg_exec_query(sql);
        rename(tempname, filename);
        free((void *) tempname);
 
@@ -196,7 +196,7 @@ DefineUser(CreateUserStmt *stmt)
        }
        strcat(sql_end, ")");
 
-       pg_exec_query(sql, (char **) NULL, (Oid *) NULL, 0);
+       pg_exec_query(sql);
 
        /*
         * Add the stuff here for groups.
@@ -328,7 +328,7 @@ AlterUser(AlterUserStmt *stmt)
        {
                sql_end += strlen(sql_end);
                sprintf(sql_end, " where usename = '%s'", stmt->user);
-               pg_exec_query(sql, (char **) NULL, (Oid *) NULL, 0);
+               pg_exec_query(sql);
        }
 
        /* do the pg_group stuff here */
@@ -450,7 +450,7 @@ RemoveUser(char *user)
                elog(NOTICE, "Dropping database %s", dbase[ndbase]);
                sprintf(sql, "drop database %s", dbase[ndbase]);
                free((void *) dbase[ndbase]);
-               pg_exec_query(sql, (char **) NULL, (Oid *) NULL, 0);
+               pg_exec_query(sql);
        }
        if (dbase)
                free((void *) dbase);
@@ -477,7 +477,7 @@ RemoveUser(char *user)
         * Remove the user from the pg_shadow table
         */
        sprintf(sql, "delete from %s where usename = '%s'", ShadowRelationName, user);
-       pg_exec_query(sql, (char **) NULL, (Oid *) NULL, 0);
+       pg_exec_query(sql);
 
        UpdatePgPwdFile(sql);
 
index 9b3886065d080a0fd6f1cbeecee4d539f5deb594..ba703cb681416fc05ab3192d081588feeabcc143 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/libpq/Attic/be-pqexec.c,v 1.15 1998/02/26 04:31:45 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/libpq/Attic/be-pqexec.c,v 1.16 1998/06/04 17:26:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -147,7 +147,7 @@ PQexec(char *query)
         *      end up on the top of the portal stack.
         * ----------------
         */
-       pg_exec_query_dest(query, (char **) NULL, (Oid *) NULL, 0, Local);
+       pg_exec_query_dest(query, Local);
 
        /* ----------------
         *      pop the portal off the portal stack and return the
index dfb9ad78245919679657e4ffd1bcc0d7cf30e8c9..bdb3117dfa29d768556f12ba30cb1bcc78265aa6 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/main/main.c,v 1.19 1998/05/12 21:43:59 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/main/main.c,v 1.20 1998/06/04 17:26:40 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -102,5 +102,5 @@ main(int argc, char *argv[])
                exit(BootstrapMain(argc - 1, argv + 1));                /* remove the -boot arg
                                                                                                                 * from the command line */
        else
-               exit(PostgresMain(argc, argv));
+               exit(PostgresMain(argc, argv, argc, argv));
 }
index cfec75d4011d50c80acc94977468fbda89630ede..8b95ac46e276e1735797ad8b3538b9cd8cbc4489 100644 (file)
@@ -10,7 +10,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.79 1998/05/29 17:10:07 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.80 1998/06/04 17:26:41 momjian Exp $
  *
  * NOTES
  *
@@ -157,7 +157,8 @@ static IpcMemoryKey ipc_key;
 
 static int     NextBackendId = MAXINT;         /* XXX why? */
 static char *progname = (char *) NULL;
-static char **argv_name;
+static char **real_argv;
+static int  real_argc;
 
 /*
  * Default Values
@@ -296,10 +297,38 @@ PostmasterMain(int argc, char *argv[])
        int                     silentflag = 0;
        bool            DataDirOK;              /* We have a usable PGDATA value */
        char            hostbuf[MAXHOSTNAMELEN];
-
-       progname = argv[0];
-       argv_name = &argv[0];
+       int                     nonblank_argc;
        
+       /*
+        *      We need three params so we can display status.  If we don't
+        *      get them from the user, let's make them ourselves.
+        */
+       if (argc < 4)
+       {
+               int i;
+               char *new_argv[5];
+
+               for (i=0; i < argc; i++)
+                       new_argv[i] = argv[i];
+               for (; i < 4; i++)
+                       new_argv[i] = "";
+               new_argv[4] = NULL;
+               execv(new_argv[0], new_argv);
+               perror("");
+               /* How did we get here, error! */
+               fprintf(stderr, "PostmasterMain execv failed on %s\n", argv[0]);
+               exit(1);
+       }
+           
+       progname = argv[0];
+       real_argv = argv;
+       real_argc = argc;
+
+       /* don't process any dummy args we placed at the end for status display */
+       for (nonblank_argc = argc; argc > 0; nonblank_argc--)
+               if (argv[argc-1] != NULL && argv[argc-1][0] != '\0')
+                       break;
+
        /*
         * for security, no dir or file created can be group or other
         * accessible
@@ -316,7 +345,7 @@ PostmasterMain(int argc, char *argv[])
        DataDir = getenv("PGDATA"); /* default value */
 
        opterr = 0;
-       while ((opt = getopt(argc, argv, "a:B:b:D:dim:Mno:p:Ss")) != EOF)
+       while ((opt = getopt(nonblank_argc, argv, "a:B:b:D:dim:Mno:p:Ss")) != EOF)
        {
                switch (opt)
                {
@@ -355,7 +384,7 @@ PostmasterMain(int argc, char *argv[])
                                 * Turn on debugging for the postmaster and the backend
                                 * servers descended from it.
                                 */
-                               if ((optind < argc) && *argv[optind] != '-')
+                               if ((optind < nonblank_argc) && *argv[optind] != '-')
                                {
                                        DebugLvl = atoi(argv[optind]);
                                        optind++;
@@ -1195,7 +1224,7 @@ DoBackend(Port *port)
         *      a big win.
         */
        
-       *argv_name = Execfile;
+       real_argv[0] = Execfile;
 
        /* Tell the backend it is being called from the postmaster */
        av[ac++] = "-p";
@@ -1252,7 +1281,7 @@ DoBackend(Port *port)
                fprintf(stderr, ")\n");
        }
 
-    return(PostgresMain(ac, av));
+    return(PostgresMain(ac, av, real_argc, real_argv));
 }
 
 /*
index 3997ad3f391cecc924131fbe7b65f75d16681b17..3bce63ac663e3349d842d19e1c39ba30d31553de 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteDefine.c,v 1.14 1998/01/13 04:04:12 scrappy Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteDefine.c,v 1.15 1998/06/04 17:26:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -135,7 +135,7 @@ InsertRule(char *rulname,
                        rulname, evtype, eventrel_oid, evslot_index, actionbuf,
                        qualbuf, is_instead);
 
-       pg_exec_query(rulebuf, (char **) NULL, (Oid *) NULL, 0);
+       pg_exec_query(rulebuf);
 
        return (LastOidProcessed);
 }
index b2fb3008e65196074b4c73ddc2163601c781b2c1..0c6cc0f40f43cb6edc8ba6b7e221c12c1dd034c5 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.72 1998/05/29 17:00:15 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.73 1998/06/04 17:26:45 momjian Exp $
  *
  * NOTES
  *       this is the "main" module of the postgres backend and
@@ -94,6 +94,7 @@ static bool DebugPrintRewrittenParsetree = false;
 
 /*static bool  EnableRewrite = true; , never changes why have it*/
 CommandDest whereToSendOutput;
+const char **ps_status;        /* this is our 'ps' status, argv[3] */
 
 #ifdef LOCK_MGR_DEBUG
 extern int     lockDebug;
@@ -594,16 +595,13 @@ pg_parse_and_plan(char *query_string,     /* string to execute */
  */
 
 void
-pg_exec_query(char *query_string, char **argv, Oid *typev, int nargs)
+pg_exec_query(char *query_string)
 {
-       pg_exec_query_dest(query_string, argv, typev, nargs, whereToSendOutput);
+       pg_exec_query_dest(query_string, whereToSendOutput);
 }
 
 void
 pg_exec_query_dest(char *query_string, /* string to execute */
-                                  char **argv, /* arguments */
-                                  Oid *typev,  /* argument types */
-                                  int nargs,   /* number of arguments */
                                   CommandDest dest)    /* where results should go */
 {
        List       *plan_list;
@@ -614,7 +612,7 @@ pg_exec_query_dest(char *query_string,      /* string to execute */
        QueryTreeList *querytree_list;
 
        /* plan the queries */
-       plan_list = pg_parse_and_plan(query_string, typev, nargs, &querytree_list, dest);
+       plan_list = pg_parse_and_plan(query_string, NULL, 0, &querytree_list, dest);
 
        if (QueryCancel)
                CancelQuery();
@@ -697,7 +695,7 @@ pg_exec_query_dest(char *query_string,      /* string to execute */
                                        time(&tim);
                                        printf("\tProcessQuery() at %s\n", ctime(&tim));
                                }
-                               ProcessQuery(querytree, plan, argv, typev, nargs, dest);
+                               ProcessQuery(querytree, plan, dest);
                        }
 
                        if (ShowExecutorStats)
@@ -827,7 +825,7 @@ usage(char *progname)
  * ----------------------------------------------------------------
  */
 int
-PostgresMain(int argc, char *argv[])
+PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[])
 {
        bool                    flagC = false,
                                        flagQ = false,
@@ -1230,6 +1228,25 @@ PostgresMain(int argc, char *argv[])
                puts("\t----------------\n");
        }
 
+       /* ----------------
+        *      set process params for ps
+        * ----------------
+        */
+       if (IsUnderPostmaster)
+       {
+               int i;
+
+               Assert(real_argc >= 4);
+               real_argv[1] = userName;
+               real_argv[2] = DBName;
+               ps_status = (const char **)&real_argv[3];
+               *ps_status = "idle";
+               for (i = 4; i < real_argc; i++)
+                       real_argv[i] = "";  /* blank them */
+       }
+       /* we just put a dummy here so we don't have to test everywhere */
+       else    ps_status = malloc(sizeof(char *));
+
        /* ----------------
         *      initialize portal file descriptors
         * ----------------
@@ -1297,7 +1314,7 @@ PostgresMain(int argc, char *argv[])
        if (!IsUnderPostmaster)
        {
                puts("\nPOSTGRES backend interactive interface");
-               puts("$Revision: 1.72 $ $Date: 1998/05/29 17:00:15 $");
+               puts("$Revision: 1.73 $ $Date: 1998/06/04 17:26:45 $");
        }
 
        /* ----------------
@@ -1347,6 +1364,7 @@ PostgresMain(int argc, char *argv[])
 
                                StartTransactionCommand();
                                HandleFunctionRequest();
+                               *ps_status = "idle";
                                break;
 
                                /* ----------------
@@ -1383,7 +1401,9 @@ PostgresMain(int argc, char *argv[])
                                        }
                                        StartTransactionCommand();
 
-                                       pg_exec_query(parser_input, (char **) NULL, (Oid *) NULL, 0);
+                                       pg_exec_query(parser_input);
+
+                                       *ps_status = "idle";
 
                                        if (ShowStats)
                                                ShowUsage();
index d836262fdf5c0e4996a428189273d78e4efa9a98..db4cae71ebe8483dac9748a6747a3a4d06f49b29 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/tcop/pquery.c,v 1.15 1998/02/26 04:36:32 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/tcop/pquery.c,v 1.16 1998/06/04 17:26:47 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -41,6 +41,8 @@
 static char *CreateOperationTag(int operationType);
 static void ProcessQueryDesc(QueryDesc *queryDesc);
 
+extern const char **ps_status; /* from postgres.c */
+
 
 /* ----------------------------------------------------------------
  *             CreateQueryDesc
@@ -226,7 +228,7 @@ ProcessQueryDesc(QueryDesc *queryDesc)
        plan = queryDesc->plantree;
 
        operation = queryDesc->operation;
-       tag = CreateOperationTag(operation);
+       *ps_status = tag = CreateOperationTag(operation);
        dest = queryDesc->dest;
 
        /* ----------------
@@ -358,9 +360,6 @@ ProcessQueryDesc(QueryDesc *queryDesc)
 void
 ProcessQuery(Query *parsetree,
                         Plan *plan,
-                        char *argv[],
-                        Oid *typev,
-                        int nargs,
                         CommandDest dest)
 {
        QueryDesc  *queryDesc;
index 65ce9d7e0354359c6f40d0eb0654a860b56890fc..20eb12d7f512cad23741a9c0851d6641d968148d 100644 (file)
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/tcop/utility.c,v 1.38 1998/02/26 04:36:36 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/tcop/utility.c,v 1.39 1998/06/04 17:26:48 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -60,6 +60,8 @@ 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.
@@ -102,18 +104,18 @@ ProcessUtility(Node *parsetree,
                                switch (stmt->command)
                                {
                                        case BEGIN_TRANS:
-                                               commandTag = "BEGIN";
+                                               *ps_status = commandTag = "BEGIN";
                                                CHECK_IF_ABORTED();
                                                BeginTransactionBlock();
                                                break;
 
                                        case END_TRANS:
-                                               commandTag = "END";
+                                               *ps_status = commandTag = "END";
                                                EndTransactionBlock();
                                                break;
 
                                        case ABORT_TRANS:
-                                               commandTag = "ABORT";
+                                               *ps_status = commandTag = "ABORT";
                                                UserAbortTransactionBlock();
                                                break;
                                }
@@ -128,7 +130,7 @@ ProcessUtility(Node *parsetree,
                        {
                                ClosePortalStmt *stmt = (ClosePortalStmt *) parsetree;
 
-                               commandTag = "CLOSE";
+                               *ps_status = commandTag = "CLOSE";
                                CHECK_IF_ABORTED();
 
                                PerformPortalClose(stmt->portalname, dest);
@@ -142,7 +144,7 @@ ProcessUtility(Node *parsetree,
                                bool            forward;
                                int                     count;
 
-                               commandTag = (stmt->ismove) ? "MOVE" : "FETCH";
+                               *ps_status = commandTag = (stmt->ismove) ? "MOVE" : "FETCH";
                                CHECK_IF_ABORTED();
 
                                forward = (bool) (stmt->direction == FORWARD);
@@ -163,7 +165,7 @@ ProcessUtility(Node *parsetree,
                         *
                         */
                case T_CreateStmt:
-                       commandTag = "CREATE";
+                       *ps_status = commandTag = "CREATE";
                        CHECK_IF_ABORTED();
 
                        DefineRelation((CreateStmt *) parsetree);
@@ -176,7 +178,7 @@ ProcessUtility(Node *parsetree,
                                List       *args = stmt->relNames;
                                Relation        rel;
 
-                               commandTag = "DROP";
+                               *ps_status = commandTag = "DROP";
                                CHECK_IF_ABORTED();
 
                                foreach(arg, args)
@@ -216,7 +218,7 @@ ProcessUtility(Node *parsetree,
                        {
                                CopyStmt   *stmt = (CopyStmt *) parsetree;
 
-                               commandTag = "COPY";
+                               *ps_status = commandTag = "COPY";
                                CHECK_IF_ABORTED();
 
                                DoCopy(stmt->relname,
@@ -238,7 +240,7 @@ ProcessUtility(Node *parsetree,
                        {
                                AddAttrStmt *stmt = (AddAttrStmt *) parsetree;
 
-                               commandTag = "ADD";
+                               *ps_status = commandTag = "ADD";
                                CHECK_IF_ABORTED();
 
                                /*
@@ -259,7 +261,7 @@ ProcessUtility(Node *parsetree,
                        {
                                RenameStmt *stmt = (RenameStmt *) parsetree;
 
-                               commandTag = "RENAME";
+                               *ps_status = commandTag = "RENAME";
                                CHECK_IF_ABORTED();
 
                                relname = stmt->relname;
@@ -317,7 +319,7 @@ ProcessUtility(Node *parsetree,
                                AclItem    *aip;
                                unsigned        modechg;
 
-                               commandTag = "CHANGE";
+                               *ps_status = commandTag = "CHANGE";
                                CHECK_IF_ABORTED();
 
                                aip = stmt->aclitem;
@@ -350,7 +352,7 @@ ProcessUtility(Node *parsetree,
                        {
                                DefineStmt *stmt = (DefineStmt *) parsetree;
 
-                               commandTag = "CREATE";
+                               *ps_status = commandTag = "CREATE";
                                CHECK_IF_ABORTED();
 
                                switch (stmt->defType)
@@ -376,14 +378,14 @@ ProcessUtility(Node *parsetree,
                        {
                                ViewStmt   *stmt = (ViewStmt *) parsetree;
 
-                               commandTag = "CREATE";
+                               *ps_status = commandTag = "CREATE";
                                CHECK_IF_ABORTED();
                                DefineView(stmt->viewname, stmt->query);                /* retrieve parsetree */
                        }
                        break;
 
                case T_ProcedureStmt:   /* CREATE FUNCTION */
-                       commandTag = "CREATE";
+                       *ps_status = commandTag = "CREATE";
                        CHECK_IF_ABORTED();
                        CreateFunction((ProcedureStmt *) parsetree, dest);      /* everything */
                        break;
@@ -392,7 +394,7 @@ ProcessUtility(Node *parsetree,
                        {
                                IndexStmt  *stmt = (IndexStmt *) parsetree;
 
-                               commandTag = "CREATE";
+                               *ps_status = commandTag = "CREATE";
                                CHECK_IF_ABORTED();
                                DefineIndex(stmt->relname,              /* relation name */
                                                        stmt->idxname,          /* index name */
@@ -416,14 +418,14 @@ ProcessUtility(Node *parsetree,
                                if (aclcheck_result != ACLCHECK_OK)
                                        elog(ERROR, "%s: %s", relname, aclcheck_error_strings[aclcheck_result]);
 #endif
-                               commandTag = "CREATE";
+                               *ps_status = commandTag = "CREATE";
                                CHECK_IF_ABORTED();
                                DefineQueryRewrite(stmt);
                        }
                        break;
 
                case T_CreateSeqStmt:
-                       commandTag = "CREATE";
+                       *ps_status = commandTag = "CREATE";
                        CHECK_IF_ABORTED();
 
                        DefineSequence((CreateSeqStmt *) parsetree);
@@ -433,7 +435,7 @@ ProcessUtility(Node *parsetree,
                        {
                                ExtendStmt *stmt = (ExtendStmt *) parsetree;
 
-                               commandTag = "EXTEND";
+                               *ps_status = commandTag = "EXTEND";
                                CHECK_IF_ABORTED();
 
                                ExtendIndex(stmt->idxname,              /* index name */
@@ -446,7 +448,7 @@ ProcessUtility(Node *parsetree,
                        {
                                RemoveStmt *stmt = (RemoveStmt *) parsetree;
 
-                               commandTag = "DROP";
+                               *ps_status = commandTag = "DROP";
                                CHECK_IF_ABORTED();
 
                                switch (stmt->removeType)
@@ -510,7 +512,7 @@ ProcessUtility(Node *parsetree,
                        {
                                RemoveAggrStmt *stmt = (RemoveAggrStmt *) parsetree;
 
-                               commandTag = "DROP";
+                               *ps_status = commandTag = "DROP";
                                CHECK_IF_ABORTED();
                                RemoveAggregate(stmt->aggname, stmt->aggtype);
                        }
@@ -520,7 +522,7 @@ ProcessUtility(Node *parsetree,
                        {
                                RemoveFuncStmt *stmt = (RemoveFuncStmt *) parsetree;
 
-                               commandTag = "DROP";
+                               *ps_status = commandTag = "DROP";
                                CHECK_IF_ABORTED();
                                RemoveFunction(stmt->funcname,
                                                           length(stmt->args),
@@ -534,7 +536,7 @@ ProcessUtility(Node *parsetree,
                                char       *type1 = (char *) NULL;
                                char       *type2 = (char *) NULL;
 
-                               commandTag = "DROP";
+                               *ps_status = commandTag = "DROP";
                                CHECK_IF_ABORTED();
 
                                if (lfirst(stmt->args) != NULL)
@@ -555,7 +557,7 @@ ProcessUtility(Node *parsetree,
                        {
                                CreatedbStmt *stmt = (CreatedbStmt *) parsetree;
 
-                               commandTag = "CREATEDB";
+                               *ps_status = commandTag = "CREATEDB";
                                CHECK_IF_ABORTED();
                                createdb(stmt->dbname, stmt->dbpath);
                        }
@@ -565,7 +567,7 @@ ProcessUtility(Node *parsetree,
                        {
                                DestroydbStmt *stmt = (DestroydbStmt *) parsetree;
 
-                               commandTag = "DESTROYDB";
+                               *ps_status = commandTag = "DESTROYDB";
                                CHECK_IF_ABORTED();
                                destroydb(stmt->dbname);
                        }
@@ -576,7 +578,7 @@ ProcessUtility(Node *parsetree,
                        {
                                NotifyStmt *stmt = (NotifyStmt *) parsetree;
 
-                               commandTag = "NOTIFY";
+                               *ps_status = commandTag = "NOTIFY";
                                CHECK_IF_ABORTED();
 
                                Async_Notify(stmt->relname);
@@ -587,7 +589,7 @@ ProcessUtility(Node *parsetree,
                        {
                                ListenStmt *stmt = (ListenStmt *) parsetree;
 
-                               commandTag = "LISTEN";
+                               *ps_status = commandTag = "LISTEN";
                                CHECK_IF_ABORTED();
 
                                Async_Listen(stmt->relname, MyProcPid);
@@ -604,7 +606,7 @@ ProcessUtility(Node *parsetree,
                                FILE       *fp;
                                char       *filename;
 
-                               commandTag = "LOAD";
+                               *ps_status = commandTag = "LOAD";
                                CHECK_IF_ABORTED();
 
                                filename = stmt->filename;
@@ -620,7 +622,7 @@ ProcessUtility(Node *parsetree,
                        {
                                ClusterStmt *stmt = (ClusterStmt *) parsetree;
 
-                               commandTag = "CLUSTER";
+                               *ps_status = commandTag = "CLUSTER";
                                CHECK_IF_ABORTED();
 
                                cluster(stmt->relname, stmt->indexname);
@@ -628,7 +630,7 @@ ProcessUtility(Node *parsetree,
                        break;
 
                case T_VacuumStmt:
-                       commandTag = "VACUUM";
+                       *ps_status = commandTag = "VACUUM";
                        CHECK_IF_ABORTED();
                        vacuum(((VacuumStmt *) parsetree)->vacrel,
                                   ((VacuumStmt *) parsetree)->verbose,
@@ -640,7 +642,7 @@ ProcessUtility(Node *parsetree,
                        {
                                ExplainStmt *stmt = (ExplainStmt *) parsetree;
 
-                               commandTag = "EXPLAIN";
+                               *ps_status = commandTag = "EXPLAIN";
                                CHECK_IF_ABORTED();
 
                                ExplainQuery(stmt->query, stmt->verbose, dest);
@@ -654,7 +656,7 @@ ProcessUtility(Node *parsetree,
                        {
                                RecipeStmt *stmt = (RecipeStmt *) parsetree;
 
-                               commandTag = "EXECUTE RECIPE";
+                               *ps_status = commandTag = "EXECUTE RECIPE";
                                CHECK_IF_ABORTED();
                                beginRecipe(stmt);
                        }
@@ -668,7 +670,7 @@ ProcessUtility(Node *parsetree,
                                VariableSetStmt *n = (VariableSetStmt *) parsetree;
 
                                SetPGVariable(n->name, n->value);
-                               commandTag = "SET VARIABLE";
+                               *ps_status = commandTag = "SET VARIABLE";
                        }
                        break;
 
@@ -677,7 +679,7 @@ ProcessUtility(Node *parsetree,
                                VariableShowStmt *n = (VariableShowStmt *) parsetree;
 
                                GetPGVariable(n->name);
-                               commandTag = "SHOW VARIABLE";
+                               *ps_status = commandTag = "SHOW VARIABLE";
                        }
                        break;
 
@@ -686,7 +688,7 @@ ProcessUtility(Node *parsetree,
                                VariableResetStmt *n = (VariableResetStmt *) parsetree;
 
                                ResetPGVariable(n->name);
-                               commandTag = "RESET VARIABLE";
+                               *ps_status = commandTag = "RESET VARIABLE";
                        }
                        break;
 
@@ -694,14 +696,14 @@ ProcessUtility(Node *parsetree,
                         * ******************************** TRIGGER statements *******************************
                         */
                case T_CreateTrigStmt:
-                       commandTag = "CREATE";
+                       *ps_status = commandTag = "CREATE";
                        CHECK_IF_ABORTED();
 
                        CreateTrigger((CreateTrigStmt *) parsetree);
                        break;
 
                case T_DropTrigStmt:
-                       commandTag = "DROP";
+                       *ps_status = commandTag = "DROP";
                        CHECK_IF_ABORTED();
 
                        DropTrigger((DropTrigStmt *) parsetree);
@@ -711,14 +713,14 @@ ProcessUtility(Node *parsetree,
                         * ************* PROCEDURAL LANGUAGE statements *****************
                         */
                case T_CreatePLangStmt:
-                       commandTag = "CREATE";
+                       *ps_status = commandTag = "CREATE";
                        CHECK_IF_ABORTED();
 
                        CreateProceduralLanguage((CreatePLangStmt *) parsetree);
                        break;
 
                case T_DropPLangStmt:
-                       commandTag = "DROP";
+                       *ps_status = commandTag = "DROP";
                        CHECK_IF_ABORTED();
 
                        DropProceduralLanguage((DropPLangStmt *) parsetree);
@@ -729,21 +731,21 @@ ProcessUtility(Node *parsetree,
                         *
                         */
                case T_CreateUserStmt:
-                       commandTag = "CREATE USER";
+                       *ps_status = commandTag = "CREATE USER";
                        CHECK_IF_ABORTED();
 
                        DefineUser((CreateUserStmt *) parsetree);
                        break;
 
                case T_AlterUserStmt:
-                       commandTag = "ALTER USER";
+                       *ps_status = commandTag = "ALTER USER";
                        CHECK_IF_ABORTED();
 
                        AlterUser((AlterUserStmt *) parsetree);
                        break;
 
                case T_DropUserStmt:
-                       commandTag = "DROP USER";
+                       *ps_status = commandTag = "DROP USER";
                        CHECK_IF_ABORTED();
 
                        RemoveUser(((DropUserStmt *) parsetree)->user);
index 10935ae63ea47ae628cdc9632a1e97609a876058..303487b988d7fe94d65b7f78a478908e1b14ec71 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: pquery.h,v 1.9 1998/02/26 04:43:40 momjian Exp $
+ * $Id: pquery.h,v 1.10 1998/06/04 17:26:49 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -29,7 +29,6 @@ ProcessPortal(char *portalName, Query *parseTree,
                          CommandDest dest);
 
 extern void
-ProcessQuery(Query *parsetree, Plan *plan, char *argv[],
-                        Oid *typev, int nargs, CommandDest dest);
+ProcessQuery(Query *parsetree, Plan *plan, CommandDest dest);
 
 #endif                                                 /* pqueryIncluded */
index f20a14d0e2bc7510fad9c3ccd43b23136f861714..4f4b60e867fa2763f4b8d5a3caacddbb4d261e29 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: tcopprot.h,v 1.13 1998/05/29 17:00:28 momjian Exp $
+ * $Id: tcopprot.h,v 1.14 1998/06/04 17:26:49 momjian Exp $
  *
  * OLD COMMENTS
  *       This file was created so that other c files could get the two
 extern List *
 pg_parse_and_plan(char *query_string, Oid *typev, int nargs,
                                  QueryTreeList **queryListP, CommandDest dest);
-extern void pg_exec_query(char *query_string, char **argv, Oid *typev, int nargs);
+extern void pg_exec_query(char *query_string);
 extern void
-pg_exec_query_dest(char *query_string, char **argv, Oid *typev,
-                                  int nargs, CommandDest dest);
+pg_exec_query_dest(char *query_string, CommandDest dest);
 
 #endif                                                 /* BOOTSTRAP_HEADER */
 
@@ -37,7 +36,8 @@ extern void quickdie(SIGNAL_ARGS);
 extern void die(SIGNAL_ARGS);
 extern void FloatExceptionHandler(SIGNAL_ARGS);
 extern void CancelQuery(void);
-extern int PostgresMain(int argc, char *argv[]);
+extern int PostgresMain(int argc, char *argv[],
+                                               int real_argc, char *real_argv[]);
 extern void ResetUsage(void);
 extern void ShowUsage(void);