diff --git a/src/backend/commands/_deadcode/version.c b/src/backend/commands/_deadcode/version.c index 1522bc40e1..7ae5a71601 100644 --- a/src/backend/commands/_deadcode/version.c +++ b/src/backend/commands/_deadcode/version.c @@ -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 diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c index 44b19650e0..40cdd4d94e 100644 --- a/src/backend/commands/dbcommands.c +++ b/src/backend/commands/dbcommands.c @@ -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 diff --git a/src/backend/commands/user.c b/src/backend/commands/user.c index a5b1715be4..1f43be77d5 100644 --- a/src/backend/commands/user.c +++ b/src/backend/commands/user.c @@ -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); diff --git a/src/backend/libpq/be-pqexec.c b/src/backend/libpq/be-pqexec.c index 9b3886065d..ba703cb681 100644 --- a/src/backend/libpq/be-pqexec.c +++ b/src/backend/libpq/be-pqexec.c @@ -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 diff --git a/src/backend/main/main.c b/src/backend/main/main.c index dfb9ad7824..bdb3117dfa 100644 --- a/src/backend/main/main.c +++ b/src/backend/main/main.c @@ -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)); } diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index cfec75d401..8b95ac46e2 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -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)); } /* diff --git a/src/backend/rewrite/rewriteDefine.c b/src/backend/rewrite/rewriteDefine.c index 3997ad3f39..3bce63ac66 100644 --- a/src/backend/rewrite/rewriteDefine.c +++ b/src/backend/rewrite/rewriteDefine.c @@ -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); } diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c index b2fb3008e6..0c6cc0f40f 100644 --- a/src/backend/tcop/postgres.c +++ b/src/backend/tcop/postgres.c @@ -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(); diff --git a/src/backend/tcop/pquery.c b/src/backend/tcop/pquery.c index d836262fdf..db4cae71eb 100644 --- a/src/backend/tcop/pquery.c +++ b/src/backend/tcop/pquery.c @@ -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; diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c index 65ce9d7e03..20eb12d7f5 100644 --- a/src/backend/tcop/utility.c +++ b/src/backend/tcop/utility.c @@ -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); diff --git a/src/include/tcop/pquery.h b/src/include/tcop/pquery.h index 10935ae63e..303487b988 100644 --- a/src/include/tcop/pquery.h +++ b/src/include/tcop/pquery.h @@ -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 */ diff --git a/src/include/tcop/tcopprot.h b/src/include/tcop/tcopprot.h index f20a14d0e2..4f4b60e867 100644 --- a/src/include/tcop/tcopprot.h +++ b/src/include/tcop/tcopprot.h @@ -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 @@ -25,10 +25,9 @@ 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);