mirror of
https://github.com/postgres/postgres.git
synced 2025-04-21 12:05:57 +03:00
Clean up some confusion about where and how to set whereToSendOutput.
We will no longer try to send elog messages to the client before we have initialized backend libpq (oops); however, reporting bogus commandline switches via elog does work now (not irrelevant, because of PGOPTIONS). Fix problem with inappropriate sending of checkpoint-process messages to stderr.
This commit is contained in:
parent
6b9f94022c
commit
02b1a7fd51
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/catalog/pg_proc.c,v 1.58 2001/08/23 00:49:46 tgl Exp $
|
* $Header: /cvsroot/pgsql/src/backend/catalog/pg_proc.c,v 1.59 2001/09/08 01:10:19 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -53,8 +53,7 @@ ProcedureCreate(char *procedureName,
|
|||||||
int32 perbyte_cpu,
|
int32 perbyte_cpu,
|
||||||
int32 percall_cpu,
|
int32 percall_cpu,
|
||||||
int32 outin_ratio,
|
int32 outin_ratio,
|
||||||
List *argList,
|
List *argList)
|
||||||
CommandDest dest)
|
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
Relation rel;
|
Relation rel;
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* Portions Copyright (c) 1994, Regents of the University of California
|
* Portions Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/commands/async.c,v 1.79 2001/06/17 22:27:15 tgl Exp $
|
* $Header: /cvsroot/pgsql/src/backend/commands/async.c,v 1.80 2001/09/08 01:10:20 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -85,7 +85,6 @@
|
|||||||
#include "libpq/libpq.h"
|
#include "libpq/libpq.h"
|
||||||
#include "libpq/pqformat.h"
|
#include "libpq/pqformat.h"
|
||||||
#include "miscadmin.h"
|
#include "miscadmin.h"
|
||||||
#include "tcop/dest.h"
|
|
||||||
#include "tcop/tcopprot.h"
|
#include "tcop/tcopprot.h"
|
||||||
#include "utils/fmgroids.h"
|
#include "utils/fmgroids.h"
|
||||||
#include "utils/ps_status.h"
|
#include "utils/ps_status.h"
|
||||||
@ -94,7 +93,7 @@
|
|||||||
|
|
||||||
/* stuff that we really ought not be touching directly :-( */
|
/* stuff that we really ought not be touching directly :-( */
|
||||||
extern TransactionState CurrentTransactionState;
|
extern TransactionState CurrentTransactionState;
|
||||||
extern CommandDest whereToSendOutput;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* State for outbound notifies consists of a list of all relnames NOTIFYed
|
* State for outbound notifies consists of a list of all relnames NOTIFYed
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/commands/define.c,v 1.59 2001/09/06 02:07:42 tgl Exp $
|
* $Header: /cvsroot/pgsql/src/backend/commands/define.c,v 1.60 2001/09/08 01:10:20 tgl Exp $
|
||||||
*
|
*
|
||||||
* DESCRIPTION
|
* DESCRIPTION
|
||||||
* The "DefineFoo" routines take the parse tree and pick out the
|
* The "DefineFoo" routines take the parse tree and pick out the
|
||||||
@ -50,7 +50,6 @@
|
|||||||
#include "miscadmin.h"
|
#include "miscadmin.h"
|
||||||
#include "optimizer/cost.h"
|
#include "optimizer/cost.h"
|
||||||
#include "parser/parse_expr.h"
|
#include "parser/parse_expr.h"
|
||||||
#include "tcop/dest.h"
|
|
||||||
#include "utils/builtins.h"
|
#include "utils/builtins.h"
|
||||||
#include "utils/syscache.h"
|
#include "utils/syscache.h"
|
||||||
|
|
||||||
@ -212,10 +211,9 @@ interpret_AS_clause(const char *languageName, const List *as,
|
|||||||
/*
|
/*
|
||||||
* CreateFunction
|
* CreateFunction
|
||||||
* Execute a CREATE FUNCTION utility statement.
|
* Execute a CREATE FUNCTION utility statement.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
CreateFunction(ProcedureStmt *stmt, CommandDest dest)
|
CreateFunction(ProcedureStmt *stmt)
|
||||||
{
|
{
|
||||||
char *probin_str;
|
char *probin_str;
|
||||||
|
|
||||||
@ -338,8 +336,7 @@ CreateFunction(ProcedureStmt *stmt, CommandDest dest)
|
|||||||
perbyte_cpu,
|
perbyte_cpu,
|
||||||
percall_cpu,
|
percall_cpu,
|
||||||
outin_ratio,
|
outin_ratio,
|
||||||
stmt->argTypes,
|
stmt->argTypes);
|
||||||
dest);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/libpq/pqsignal.c,v 1.22 2001/09/07 16:12:48 wieck Exp $
|
* $Header: /cvsroot/pgsql/src/backend/libpq/pqsignal.c,v 1.23 2001/09/08 01:10:20 tgl Exp $
|
||||||
*
|
*
|
||||||
* NOTES
|
* NOTES
|
||||||
* This shouldn't be in libpq, but the monitor and some other
|
* This shouldn't be in libpq, but the monitor and some other
|
||||||
@ -46,12 +46,15 @@
|
|||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Initialize BlockSig and UnBlockSig.
|
* Initialize BlockSig, UnBlockSig, and AuthBlockSig.
|
||||||
*
|
*
|
||||||
* BlockSig is the set of signals to block when we are trying to block
|
* BlockSig is the set of signals to block when we are trying to block
|
||||||
* signals. This includes all signals we normally expect to get, but NOT
|
* signals. This includes all signals we normally expect to get, but NOT
|
||||||
* signals that should never be turned off.
|
* signals that should never be turned off.
|
||||||
*
|
*
|
||||||
|
* AuthBlockSig is the set of signals to block during authentication;
|
||||||
|
* it's essentially BlockSig minus SIGTERM and SIGQUIT.
|
||||||
|
*
|
||||||
* UnBlockSig is the set of signals to block when we don't want to block
|
* UnBlockSig is the set of signals to block when we don't want to block
|
||||||
* signals (is this ever nonzero??)
|
* signals (is this ever nonzero??)
|
||||||
*/
|
*/
|
||||||
|
@ -37,7 +37,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.240 2001/09/07 16:12:48 wieck Exp $
|
* $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.241 2001/09/08 01:10:20 tgl Exp $
|
||||||
*
|
*
|
||||||
* NOTES
|
* NOTES
|
||||||
*
|
*
|
||||||
@ -687,6 +687,15 @@ PostmasterMain(int argc, char *argv[])
|
|||||||
pqsignal(SIGTTIN, SIG_IGN); /* ignored */
|
pqsignal(SIGTTIN, SIG_IGN); /* ignored */
|
||||||
pqsignal(SIGTTOU, SIG_IGN); /* ignored */
|
pqsignal(SIGTTOU, SIG_IGN); /* ignored */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Reset whereToSendOutput from Debug (its starting state) to None.
|
||||||
|
* This prevents elog from sending messages to stderr unless the
|
||||||
|
* syslog/stderr switch permits. We don't do this until the postmaster
|
||||||
|
* is fully launched, since startup failures may as well be reported
|
||||||
|
* to stderr.
|
||||||
|
*/
|
||||||
|
whereToSendOutput = None;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Initialize and startup the statistics collector process
|
* Initialize and startup the statistics collector process
|
||||||
*/
|
*/
|
||||||
@ -1932,8 +1941,6 @@ DoBackend(Port *port)
|
|||||||
/* Reset MyProcPid to new backend's pid */
|
/* Reset MyProcPid to new backend's pid */
|
||||||
MyProcPid = getpid();
|
MyProcPid = getpid();
|
||||||
|
|
||||||
whereToSendOutput = Remote; /* XXX probably doesn't belong here */
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We arrange for a simple exit(0) if we receive SIGTERM or SIGQUIT
|
* We arrange for a simple exit(0) if we receive SIGTERM or SIGQUIT
|
||||||
* during any client authentication related communication. Otherwise
|
* during any client authentication related communication. Otherwise
|
||||||
@ -1955,6 +1962,10 @@ DoBackend(Port *port)
|
|||||||
|
|
||||||
ClientAuthentication(MyProcPort); /* might not return, if failure */
|
ClientAuthentication(MyProcPort); /* might not return, if failure */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Done with authentication. Prevent SIGTERM/SIGQUIT again until
|
||||||
|
* backend startup is complete.
|
||||||
|
*/
|
||||||
PG_SETMASK(&BlockSig);
|
PG_SETMASK(&BlockSig);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.231 2001/09/07 16:12:48 wieck Exp $
|
* $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.232 2001/09/08 01:10:20 tgl Exp $
|
||||||
*
|
*
|
||||||
* NOTES
|
* NOTES
|
||||||
* this is the "main" module of the postgres backend and
|
* this is the "main" module of the postgres backend and
|
||||||
@ -85,6 +85,7 @@ bool ShowPortNumber;
|
|||||||
|
|
||||||
bool Log_connections = false;
|
bool Log_connections = false;
|
||||||
|
|
||||||
|
/* Note: whereToSendOutput is initialized for the bootstrap/standalone case */
|
||||||
CommandDest whereToSendOutput = Debug;
|
CommandDest whereToSendOutput = Debug;
|
||||||
|
|
||||||
static bool dontExecute = false;
|
static bool dontExecute = false;
|
||||||
@ -536,7 +537,7 @@ pg_plan_query(Query *querytree)
|
|||||||
|
|
||||||
if (Show_planner_stats)
|
if (Show_planner_stats)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "PLANNER STATISTICS\n");
|
fprintf(StatFp, "PLANNER STATISTICS\n");
|
||||||
ShowUsage();
|
ShowUsage();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -813,7 +814,7 @@ pg_exec_query_string(char *query_string, /* string to execute */
|
|||||||
|
|
||||||
if (Show_executor_stats)
|
if (Show_executor_stats)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "EXECUTOR STATISTICS\n");
|
fprintf(StatFp, "EXECUTOR STATISTICS\n");
|
||||||
ShowUsage();
|
ShowUsage();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -910,9 +911,9 @@ quickdie(SIGNAL_ARGS)
|
|||||||
PG_SETMASK(&BlockSig);
|
PG_SETMASK(&BlockSig);
|
||||||
elog(NOTICE, "Message from PostgreSQL backend:"
|
elog(NOTICE, "Message from PostgreSQL backend:"
|
||||||
"\n\tThe Postmaster has informed me that some other backend"
|
"\n\tThe Postmaster has informed me that some other backend"
|
||||||
"\tdied abnormally and possibly corrupted shared memory."
|
"\n\tdied abnormally and possibly corrupted shared memory."
|
||||||
"\n\tI have rolled back the current transaction and am"
|
"\n\tI have rolled back the current transaction and am"
|
||||||
"\tgoing to terminate your database system connection and exit."
|
"\n\tgoing to terminate your database system connection and exit."
|
||||||
"\n\tPlease reconnect to the database system and repeat your query.");
|
"\n\tPlease reconnect to the database system and repeat your query.");
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -968,6 +969,10 @@ die(SIGNAL_ARGS)
|
|||||||
/*
|
/*
|
||||||
* Shutdown signal from postmaster during client authentication.
|
* Shutdown signal from postmaster during client authentication.
|
||||||
* Simply exit(0).
|
* Simply exit(0).
|
||||||
|
*
|
||||||
|
* XXX: possible future improvement: try to send a message indicating
|
||||||
|
* why we are disconnecting. Problem is to be sure we don't block while
|
||||||
|
* doing so nor mess up the authentication message exchange.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
authdie(SIGNAL_ARGS)
|
authdie(SIGNAL_ARGS)
|
||||||
@ -1163,6 +1168,16 @@ PostgresMain(int argc, char *argv[],
|
|||||||
|
|
||||||
SetProcessingMode(InitProcessing);
|
SetProcessingMode(InitProcessing);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If under postmaster, initialize libpq and enable reporting of
|
||||||
|
* elog errors to the client.
|
||||||
|
*/
|
||||||
|
if (IsUnderPostmaster)
|
||||||
|
{
|
||||||
|
pq_init(); /* initialize libpq at backend startup */
|
||||||
|
whereToSendOutput = Remote; /* now safe to elog to client */
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set default values for command-line options.
|
* Set default values for command-line options.
|
||||||
*/
|
*/
|
||||||
@ -1209,7 +1224,7 @@ PostgresMain(int argc, char *argv[],
|
|||||||
#ifdef USE_ASSERT_CHECKING
|
#ifdef USE_ASSERT_CHECKING
|
||||||
SetConfigOption("debug_assertions", optarg, ctx, true);
|
SetConfigOption("debug_assertions", optarg, ctx, true);
|
||||||
#else
|
#else
|
||||||
fprintf(stderr, "Assert checking is not compiled in\n");
|
elog(NOTICE, "Assert checking is not compiled in");
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -1439,7 +1454,7 @@ PostgresMain(int argc, char *argv[],
|
|||||||
*/
|
*/
|
||||||
if (XfuncMode != 0)
|
if (XfuncMode != 0)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "only one -x flag is allowed\n");
|
elog(NOTICE, "only one -x flag is allowed");
|
||||||
errs++;
|
errs++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1457,7 +1472,7 @@ PostgresMain(int argc, char *argv[],
|
|||||||
XfuncMode = XFUNC_WAIT;
|
XfuncMode = XFUNC_WAIT;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
fprintf(stderr, "use -x {off,nor,nopull,nopm,pullall,wait}\n");
|
elog(NOTICE, "use -x {off,nor,nopull,nopm,pullall,wait}");
|
||||||
errs++;
|
errs++;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -1492,14 +1507,11 @@ PostgresMain(int argc, char *argv[],
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Post-processing for command line options.
|
* Post-processing for command line options.
|
||||||
*
|
|
||||||
* XXX It'd be nice if libpq were already running here, so we could do
|
|
||||||
* elog(NOTICE) instead of just writing on stderr...
|
|
||||||
*/
|
*/
|
||||||
if (Show_query_stats &&
|
if (Show_query_stats &&
|
||||||
(Show_parser_stats || Show_planner_stats || Show_executor_stats))
|
(Show_parser_stats || Show_planner_stats || Show_executor_stats))
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Query statistics are disabled because parser, planner, or executor statistics are on.\n");
|
elog(NOTICE, "Query statistics are disabled because parser, planner, or executor statistics are on.");
|
||||||
SetConfigOption("show_query_stats", "false", ctx, true);
|
SetConfigOption("show_query_stats", "false", ctx, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1578,11 +1590,11 @@ PostgresMain(int argc, char *argv[],
|
|||||||
/* noninteractive case: nothing should be left after switches */
|
/* noninteractive case: nothing should be left after switches */
|
||||||
if (errs || argc != optind || DBName == NULL)
|
if (errs || argc != optind || DBName == NULL)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "%s: invalid command line arguments\nTry -? for help.\n", argv[0]);
|
elog(NOTICE, "%s: invalid command line arguments\nTry -? for help.",
|
||||||
|
argv[0]);
|
||||||
proc_exit(0); /* not 1, that causes system-wide
|
proc_exit(0); /* not 1, that causes system-wide
|
||||||
* restart... */
|
* restart... */
|
||||||
}
|
}
|
||||||
pq_init(); /* initialize libpq at backend startup */
|
|
||||||
BaseInit();
|
BaseInit();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1590,14 +1602,15 @@ PostgresMain(int argc, char *argv[],
|
|||||||
/* interactive case: database name can be last arg on command line */
|
/* interactive case: database name can be last arg on command line */
|
||||||
if (errs || argc - optind > 1)
|
if (errs || argc - optind > 1)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "%s: invalid command line arguments\nTry -? for help.\n", argv[0]);
|
elog(NOTICE, "%s: invalid command line arguments\nTry -? for help.",
|
||||||
|
argv[0]);
|
||||||
proc_exit(1);
|
proc_exit(1);
|
||||||
}
|
}
|
||||||
else if (argc - optind == 1)
|
else if (argc - optind == 1)
|
||||||
DBName = argv[optind];
|
DBName = argv[optind];
|
||||||
else if ((DBName = username) == NULL)
|
else if ((DBName = username) == NULL)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "%s: user name undefined and no database specified\n",
|
elog(NOTICE, "%s: user name undefined and no database specified\n",
|
||||||
argv[0]);
|
argv[0]);
|
||||||
proc_exit(1);
|
proc_exit(1);
|
||||||
}
|
}
|
||||||
@ -1723,7 +1736,7 @@ PostgresMain(int argc, char *argv[],
|
|||||||
if (!IsUnderPostmaster)
|
if (!IsUnderPostmaster)
|
||||||
{
|
{
|
||||||
puts("\nPOSTGRES backend interactive interface ");
|
puts("\nPOSTGRES backend interactive interface ");
|
||||||
puts("$Revision: 1.231 $ $Date: 2001/09/07 16:12:48 $\n");
|
puts("$Revision: 1.232 $ $Date: 2001/09/08 01:10:20 $\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/tcop/utility.c,v 1.116 2001/08/21 16:36:04 tgl Exp $
|
* $Header: /cvsroot/pgsql/src/backend/tcop/utility.c,v 1.117 2001/09/08 01:10:20 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -525,7 +525,7 @@ ProcessUtility(Node *parsetree,
|
|||||||
case T_ProcedureStmt: /* CREATE FUNCTION */
|
case T_ProcedureStmt: /* CREATE FUNCTION */
|
||||||
set_ps_display(commandTag = "CREATE");
|
set_ps_display(commandTag = "CREATE");
|
||||||
|
|
||||||
CreateFunction((ProcedureStmt *) parsetree, dest); /* everything */
|
CreateFunction((ProcedureStmt *) parsetree);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case T_IndexStmt: /* CREATE INDEX */
|
case T_IndexStmt: /* CREATE INDEX */
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/sets.c,v 1.37 2001/03/22 03:59:54 momjian Exp $
|
* $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/sets.c,v 1.38 2001/09/08 01:10:20 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -26,8 +26,6 @@
|
|||||||
#include "utils/sets.h"
|
#include "utils/sets.h"
|
||||||
#include "utils/syscache.h"
|
#include "utils/syscache.h"
|
||||||
|
|
||||||
extern CommandDest whereToSendOutput; /* defined in tcop/postgres.c */
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* SetDefine - converts query string defining set to an oid
|
* SetDefine - converts query string defining set to an oid
|
||||||
@ -65,8 +63,7 @@ SetDefine(char *querystr, char *typename)
|
|||||||
0, /* perbyte_cpu */
|
0, /* perbyte_cpu */
|
||||||
0, /* percall_cpu */
|
0, /* percall_cpu */
|
||||||
100, /* outin_ratio */
|
100, /* outin_ratio */
|
||||||
NIL, /* argList */
|
NIL); /* argList */
|
||||||
whereToSendOutput);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Since we're still inside this command of the transaction, we can't
|
* Since we're still inside this command of the transaction, we can't
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
|
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
|
||||||
* Portions Copyright (c) 1994, Regents of the University of California
|
* Portions Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* $Id: pg_proc.h,v 1.209 2001/09/06 04:57:29 ishii Exp $
|
* $Id: pg_proc.h,v 1.210 2001/09/08 01:10:20 tgl Exp $
|
||||||
*
|
*
|
||||||
* NOTES
|
* NOTES
|
||||||
* The script catalog/genbki.sh reads this file and generates .bki
|
* The script catalog/genbki.sh reads this file and generates .bki
|
||||||
@ -23,7 +23,7 @@
|
|||||||
#ifndef PG_PROC_H
|
#ifndef PG_PROC_H
|
||||||
#define PG_PROC_H
|
#define PG_PROC_H
|
||||||
|
|
||||||
#include "tcop/dest.h"
|
#include "nodes/pg_list.h"
|
||||||
|
|
||||||
/* ----------------
|
/* ----------------
|
||||||
* postgres.h contains the system type definintions and the
|
* postgres.h contains the system type definintions and the
|
||||||
@ -2757,8 +2757,6 @@ extern Oid ProcedureCreate(char *procedureName,
|
|||||||
int32 perbyte_cpu,
|
int32 perbyte_cpu,
|
||||||
int32 percall_cpu,
|
int32 percall_cpu,
|
||||||
int32 outin_ratio,
|
int32 outin_ratio,
|
||||||
List *argList,
|
List *argList);
|
||||||
CommandDest dest);
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* PG_PROC_H */
|
#endif /* PG_PROC_H */
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
|
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
|
||||||
* Portions Copyright (c) 1994, Regents of the University of California
|
* Portions Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* $Id: defrem.h,v 1.24 2001/08/21 16:36:06 tgl Exp $
|
* $Id: defrem.h,v 1.25 2001/09/08 01:10:21 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -15,7 +15,6 @@
|
|||||||
#define DEFREM_H
|
#define DEFREM_H
|
||||||
|
|
||||||
#include "nodes/parsenodes.h"
|
#include "nodes/parsenodes.h"
|
||||||
#include "tcop/dest.h"
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* prototypes in indexcmds.c
|
* prototypes in indexcmds.c
|
||||||
@ -36,7 +35,7 @@ extern void ReindexDatabase(const char *databaseName, bool force, bool all);
|
|||||||
/*
|
/*
|
||||||
* prototypes in define.c
|
* prototypes in define.c
|
||||||
*/
|
*/
|
||||||
extern void CreateFunction(ProcedureStmt *stmt, CommandDest dest);
|
extern void CreateFunction(ProcedureStmt *stmt);
|
||||||
extern void DefineOperator(char *name, List *parameters);
|
extern void DefineOperator(char *name, List *parameters);
|
||||||
extern void DefineAggregate(char *name, List *parameters);
|
extern void DefineAggregate(char *name, List *parameters);
|
||||||
extern void DefineType(char *name, List *parameters);
|
extern void DefineType(char *name, List *parameters);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user