|
|
|
|
@ -7,15 +7,13 @@ |
|
|
|
|
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc |
|
|
|
|
* Portions Copyright (c) 1994, Regents of the University of California |
|
|
|
|
* |
|
|
|
|
* $Id: elog.h,v 1.19 2000/12/03 10:27:29 vadim Exp $ |
|
|
|
|
* $Id: elog.h,v 1.20 2000/12/06 17:25:45 tgl Exp $ |
|
|
|
|
* |
|
|
|
|
*------------------------------------------------------------------------- |
|
|
|
|
*/ |
|
|
|
|
#ifndef ELOG_H |
|
|
|
|
#define ELOG_H |
|
|
|
|
|
|
|
|
|
#include "miscadmin.h" |
|
|
|
|
|
|
|
|
|
#define NOTICE 0 /* random info - no special action */ |
|
|
|
|
#define ERROR (-1) /* user error - return to known state */ |
|
|
|
|
#define FATAL 1 /* fatal error - abort process */ |
|
|
|
|
@ -30,23 +28,29 @@ extern int Use_syslog; |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* If StopIfError > 0 signal handlers don't do |
|
|
|
|
* elog(ERROR|FATAL) but remember what action was |
|
|
|
|
* required with QueryCancel & ExitAfterAbort |
|
|
|
|
* If StopIfError > 0 signal handlers mustn't do |
|
|
|
|
* elog(ERROR|FATAL), instead remember what action is |
|
|
|
|
* required with QueryCancel & ExitAfterAbort. |
|
|
|
|
*/ |
|
|
|
|
extern uint32 StopIfError; /* duplicates access/xlog.h */ |
|
|
|
|
extern bool QueryCancel; /* duplicates miscadmin.h */ |
|
|
|
|
extern bool ExitAfterAbort; |
|
|
|
|
#define START_CRIT_CODE StopIfError++ |
|
|
|
|
#define END_CRIT_CODE \ |
|
|
|
|
if (!StopIfError)\
|
|
|
|
|
elog(STOP, "Not in critical section");\
|
|
|
|
|
StopIfError--;\
|
|
|
|
|
if (!StopIfError && QueryCancel)\
|
|
|
|
|
{\
|
|
|
|
|
if (ExitAfterAbort)\
|
|
|
|
|
elog(FATAL, "The system is shutting down");\
|
|
|
|
|
else\
|
|
|
|
|
elog(ERROR, "Query was cancelled.");\
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#define START_CRIT_CODE (StopIfError++) |
|
|
|
|
|
|
|
|
|
#define END_CRIT_CODE \ |
|
|
|
|
do { \
|
|
|
|
|
if (!StopIfError) \
|
|
|
|
|
elog(STOP, "Not in critical section"); \
|
|
|
|
|
StopIfError--; \
|
|
|
|
|
if (!StopIfError && QueryCancel) \
|
|
|
|
|
{ \
|
|
|
|
|
if (ExitAfterAbort) \
|
|
|
|
|
elog(FATAL, "The system is shutting down"); \
|
|
|
|
|
else \
|
|
|
|
|
elog(ERROR, "Query was cancelled."); \
|
|
|
|
|
} \
|
|
|
|
|
} while(0) |
|
|
|
|
|
|
|
|
|
extern bool Log_timestamp; |
|
|
|
|
extern bool Log_pid; |
|
|
|
|
|