mirror of
https://github.com/postgres/postgres.git
synced 2025-05-25 00:04:05 -04:00
from DateStyle, and create a new interval style that produces output matching the SQL standard (at least for interval values that fall within the standard's restrictions). IntervalStyle is also used to resolve the conflict between the standard and traditional Postgres rules for interpreting negative interval input. Ron Mayer
119 lines
3.4 KiB
C
119 lines
3.4 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* globals.c
|
|
* global variable declarations
|
|
*
|
|
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
|
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
*
|
|
*
|
|
* IDENTIFICATION
|
|
* $PostgreSQL: pgsql/src/backend/utils/init/globals.c,v 1.106 2008/11/09 00:28:35 tgl Exp $
|
|
*
|
|
* NOTES
|
|
* Globals used all over the place should be declared here and not
|
|
* in other modules.
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
#include "postgres.h"
|
|
|
|
#include "libpq/pqcomm.h"
|
|
#include "miscadmin.h"
|
|
#include "storage/backendid.h"
|
|
|
|
|
|
ProtocolVersion FrontendProtocol = PG_PROTOCOL_LATEST;
|
|
|
|
volatile bool InterruptPending = false;
|
|
volatile bool QueryCancelPending = false;
|
|
volatile bool ProcDiePending = false;
|
|
volatile bool ImmediateInterruptOK = false;
|
|
volatile uint32 InterruptHoldoffCount = 0;
|
|
volatile uint32 CritSectionCount = 0;
|
|
|
|
int MyProcPid;
|
|
pg_time_t MyStartTime;
|
|
struct Port *MyProcPort;
|
|
long MyCancelKey;
|
|
|
|
/*
|
|
* DataDir is the absolute path to the top level of the PGDATA directory tree.
|
|
* Except during early startup, this is also the server's working directory;
|
|
* most code therefore can simply use relative paths and not reference DataDir
|
|
* explicitly.
|
|
*/
|
|
char *DataDir = NULL;
|
|
|
|
char OutputFileName[MAXPGPATH]; /* debugging output file */
|
|
|
|
char my_exec_path[MAXPGPATH]; /* full path to my executable */
|
|
char pkglib_path[MAXPGPATH]; /* full path to lib directory */
|
|
|
|
#ifdef EXEC_BACKEND
|
|
char postgres_exec_path[MAXPGPATH]; /* full path to backend */
|
|
|
|
/* note: currently this is not valid in backend processes */
|
|
#endif
|
|
|
|
BackendId MyBackendId = InvalidBackendId;
|
|
|
|
Oid MyDatabaseId = InvalidOid;
|
|
|
|
Oid MyDatabaseTableSpace = InvalidOid;
|
|
|
|
/*
|
|
* DatabasePath is the path (relative to DataDir) of my database's
|
|
* primary directory, ie, its directory in the default tablespace.
|
|
*/
|
|
char *DatabasePath = NULL;
|
|
|
|
pid_t PostmasterPid = 0;
|
|
|
|
/*
|
|
* IsPostmasterEnvironment is true in a postmaster process and any postmaster
|
|
* child process; it is false in a standalone process (bootstrap or
|
|
* standalone backend). IsUnderPostmaster is true in postmaster child
|
|
* processes. Note that "child process" includes all children, not only
|
|
* regular backends. These should be set correctly as early as possible
|
|
* in the execution of a process, so that error handling will do the right
|
|
* things if an error should occur during process initialization.
|
|
*
|
|
* These are initialized for the bootstrap/standalone case.
|
|
*/
|
|
bool IsPostmasterEnvironment = false;
|
|
bool IsUnderPostmaster = false;
|
|
|
|
bool ExitOnAnyError = false;
|
|
|
|
int DateStyle = USE_ISO_DATES;
|
|
int DateOrder = DATEORDER_MDY;
|
|
int IntervalStyle = INTSTYLE_POSTGRES;
|
|
bool HasCTZSet = false;
|
|
int CTimeZone = 0;
|
|
|
|
bool enableFsync = true;
|
|
bool allowSystemTableMods = false;
|
|
int work_mem = 1024;
|
|
int maintenance_work_mem = 16384;
|
|
|
|
/*
|
|
* Primary determinants of sizes of shared-memory structures. MaxBackends is
|
|
* MaxConnections + autovacuum_max_workers (it is computed by the GUC assign
|
|
* hook):
|
|
*/
|
|
int NBuffers = 1000;
|
|
int MaxBackends = 100;
|
|
int MaxConnections = 90;
|
|
|
|
int VacuumCostPageHit = 1; /* GUC parameters for vacuum */
|
|
int VacuumCostPageMiss = 10;
|
|
int VacuumCostPageDirty = 20;
|
|
int VacuumCostLimit = 200;
|
|
int VacuumCostDelay = 0;
|
|
|
|
int VacuumCostBalance = 0; /* working state for vacuum */
|
|
bool VacuumCostActive = false;
|
|
|
|
int GinFuzzySearchLimit = 0;
|