]> granicus.if.org Git - postgresql/blobdiff - src/backend/utils/init/globals.c
Update copyright notices for year 2012.
[postgresql] / src / backend / utils / init / globals.c
index c5d4282007fe0f6810c0466bfb9b0e8dabc4edb3..4b66bd3e358bb8aea34b165f6ab47477e022305d 100644 (file)
@@ -3,12 +3,12 @@
  * globals.c
  *       global variable declarations
  *
- * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
+ * Portions Copyright (c) 1996-2012, 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.78 2004/01/26 22:51:56 momjian Exp $
+ *       src/backend/utils/init/globals.c
  *
  * NOTES
  *       Globals used all over the place should be declared here and not
  */
 #include "postgres.h"
 
+#include "catalog/objectaccess.h"
 #include "libpq/pqcomm.h"
 #include "miscadmin.h"
 #include "storage/backendid.h"
 
 
-ProtocolVersion FrontendProtocol = PG_PROTOCOL_LATEST;
+ProtocolVersion FrontendProtocol;
 
 volatile bool InterruptPending = false;
 volatile bool QueryCancelPending = false;
 volatile bool ProcDiePending = false;
+volatile bool ClientConnectionLost = false;
 volatile bool ImmediateInterruptOK = false;
 volatile uint32 InterruptHoldoffCount = 0;
 volatile uint32 CritSectionCount = 0;
 
 int                    MyProcPid;
+pg_time_t      MyStartTime;
 struct Port *MyProcPort;
 long           MyCancelKey;
+int                    MyPMChildSlot;
 
+/*
+ * 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;
 
- /*
-  * The PGDATA directory user says to use, or defaults to via environment
-  * variable.  NULL if no option given and no environment variable set
-  */
+char           OutputFileName[MAXPGPATH];      /* debugging output file */
 
-char           OutputFileName[MAXPGPATH];
+char           my_exec_path[MAXPGPATH];        /* full path to my executable */
+char           pkglib_path[MAXPGPATH];         /* full path to lib directory */
 
-char           pg_pathname[MAXPGPATH];         /* full path to postgres
-                                                                                * executable */
+#ifdef EXEC_BACKEND
+char           postgres_exec_path[MAXPGPATH];          /* full path to backend */
 
-BackendId      MyBackendId;
+/* note: currently this is not valid in backend processes */
+#endif
+
+BackendId      MyBackendId = InvalidBackendId;
 
-char      *DatabasePath = NULL;
 Oid                    MyDatabaseId = InvalidOid;
 
-pid_t PostmasterPid = 0;
+Oid                    MyDatabaseTableSpace = InvalidOid;
 
-/* these are initialized for the bootstrap/standalone case: */
+/*
+ * 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           IsBinaryUpgrade = 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                    SortMem = 1024;
-int                    VacuumMem = 8192;
+int                    work_mem = 1024;
+int                    maintenance_work_mem = 16384;
+
+/*
+ * Primary determinants of sizes of shared-memory structures.  MaxBackends is
+ * MaxConnections + autovacuum_max_workers + 1 (it is computed by the GUC
+ * assign hooks for those variables):
+ */
 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                    VacuumPageHit = 0;
+int                    VacuumPageMiss = 0;
+int                    VacuumPageDirty = 0;
+
+int                    VacuumCostBalance = 0;          /* working state for vacuum */
+bool           VacuumCostActive = false;
+
+int                    GinFuzzySearchLimit = 0;
+
+/*
+ * Hook on object accesses.  This is intended as infrastructure for security
+ * and logging plugins.
+ */
+object_access_hook_type object_access_hook = NULL;