summaryrefslogtreecommitdiff
path: root/src/include/miscadmin.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/miscadmin.h')
-rw-r--r--src/include/miscadmin.h305
1 files changed, 0 insertions, 305 deletions
diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h
deleted file mode 100644
index f2f6f5c6760..00000000000
--- a/src/include/miscadmin.h
+++ /dev/null
@@ -1,305 +0,0 @@
-/*-------------------------------------------------------------------------
- *
- * miscadmin.h
- * this file contains general postgres administration and initialization
- * stuff that used to be spread out between the following files:
- * globals.h global variables
- * pdir.h directory path crud
- * pinit.h postgres initialization
- * pmod.h processing modes
- *
- *
- * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
- * Portions Copyright (c) 1994, Regents of the University of California
- *
- * $Id: miscadmin.h,v 1.106 2002/06/20 20:29:42 momjian Exp $
- *
- * NOTES
- * some of the information in this file should be moved to
- * other files.
- *
- *-------------------------------------------------------------------------
- */
-#ifndef MISCADMIN_H
-#define MISCADMIN_H
-
-#include <sys/types.h>
-
-
-/*****************************************************************************
- * System interrupt and critical section handling
- *
- * There are two types of interrupts that a running backend needs to accept
- * without messing up its state: QueryCancel (SIGINT) and ProcDie (SIGTERM).
- * In both cases, we need to be able to clean up the current transaction
- * gracefully, so we can't respond to the interrupt instantaneously ---
- * there's no guarantee that internal data structures would be self-consistent
- * if the code is interrupted at an arbitrary instant. Instead, the signal
- * handlers set flags that are checked periodically during execution.
- *
- * The CHECK_FOR_INTERRUPTS() macro is called at strategically located spots
- * where it is normally safe to accept a cancel or die interrupt. In some
- * cases, we invoke CHECK_FOR_INTERRUPTS() inside low-level subroutines that
- * might sometimes be called in contexts that do *not* want to allow a cancel
- * or die interrupt. The HOLD_INTERRUPTS() and RESUME_INTERRUPTS() macros
- * allow code to ensure that no cancel or die interrupt will be accepted,
- * even if CHECK_FOR_INTERRUPTS() gets called in a subroutine. The interrupt
- * will be held off until CHECK_FOR_INTERRUPTS() is done outside any
- * HOLD_INTERRUPTS() ... RESUME_INTERRUPTS() section.
- *
- * Special mechanisms are used to let an interrupt be accepted when we are
- * waiting for a lock or when we are waiting for command input (but, of
- * course, only if the interrupt holdoff counter is zero). See the
- * related code for details.
- *
- * A related, but conceptually distinct, mechanism is the "critical section"
- * mechanism. A critical section not only holds off cancel/die interrupts,
- * but causes any elog(ERROR) or elog(FATAL) to become elog(STOP) --- that is,
- * a system-wide reset is forced. Needless to say, only really *critical*
- * code should be marked as a critical section! Currently, this mechanism
- * is only used for XLOG-related code.
- *
- *****************************************************************************/
-
-/* in globals.c */
-/* these are marked volatile because they are set by signal handlers: */
-extern volatile bool InterruptPending;
-extern volatile bool QueryCancelPending;
-extern volatile bool ProcDiePending;
-
-/* these are marked volatile because they are examined by signal handlers: */
-extern volatile bool ImmediateInterruptOK;
-extern volatile uint32 InterruptHoldoffCount;
-extern volatile uint32 CritSectionCount;
-
-/* in postgres.c */
-extern void ProcessInterrupts(void);
-
-#define CHECK_FOR_INTERRUPTS() \
- do { \
- if (InterruptPending) \
- ProcessInterrupts(); \
- } while(0)
-
-#define HOLD_INTERRUPTS() (InterruptHoldoffCount++)
-
-#define RESUME_INTERRUPTS() \
- do { \
- Assert(InterruptHoldoffCount > 0); \
- InterruptHoldoffCount--; \
- } while(0)
-
-#define START_CRIT_SECTION() (CritSectionCount++)
-
-#define END_CRIT_SECTION() \
- do { \
- Assert(CritSectionCount > 0); \
- CritSectionCount--; \
- } while(0)
-
-
-/*****************************************************************************
- * globals.h -- *
- *****************************************************************************/
-
-/*
- * from postmaster/postmaster.c
- */
-extern bool IsUnderPostmaster;
-extern bool ClientAuthInProgress;
-
-extern int PostmasterMain(int argc, char *argv[]);
-extern void ClosePostmasterPorts(bool pgstat_too);
-
-/*
- * from utils/init/globals.c
- */
-extern bool Noversion;
-extern char *DataDir;
-
-extern DLLIMPORT int MyProcPid;
-extern struct Port *MyProcPort;
-extern long MyCancelKey;
-
-extern char OutputFileName[];
-extern char pg_pathname[];
-
-/*
- * done in storage/backendid.h for now.
- *
- * extern BackendId MyBackendId;
- */
-extern DLLIMPORT Oid MyDatabaseId;
-
-/* Date/Time Configuration
- *
- * Constants to pass info from runtime environment:
- * USE_POSTGRES_DATES specifies traditional postgres format for output.
- * USE_ISO_DATES specifies ISO-compliant format for output.
- * USE_SQL_DATES specified Oracle/Ingres-compliant format for output.
- * USE_GERMAN_DATES specifies German-style dd.mm/yyyy date format.
- *
- * DateStyle specifies preference for date formatting for output.
- * EuroDates if client prefers dates interpreted and written w/European conventions.
- *
- * HasCTZSet if client timezone is specified by client.
- * CDayLight is the apparent daylight savings time status.
- * CTimeZone is the timezone offset in seconds.
- * CTZName is the timezone label.
- */
-
-#define MAXTZLEN 10 /* max TZ name len, not counting tr. null */
-
-#define USE_POSTGRES_DATES 0
-#define USE_ISO_DATES 1
-#define USE_SQL_DATES 2
-#define USE_GERMAN_DATES 3
-
-extern int DateStyle;
-extern bool EuroDates;
-extern bool HasCTZSet;
-extern bool CDayLight;
-extern int CTimeZone;
-extern char CTZName[];
-
-extern char FloatFormat[];
-extern char DateFormat[];
-
-extern bool enableFsync;
-extern bool allowSystemTableMods;
-extern int SortMem;
-extern int VacuumMem;
-
-/*
- * A few postmaster startup options are exported here so the
- * configuration file processor can access them.
- */
-
-extern bool NetServer;
-extern bool EnableSSL;
-extern bool SilentMode;
-extern int MaxBackends;
-extern int NBuffers;
-extern int PostPortNumber;
-extern int Unix_socket_permissions;
-extern char *Unix_socket_group;
-extern char *UnixSocketDir;
-extern char *VirtualHost;
-
-
-/*****************************************************************************
- * pdir.h -- *
- * POSTGRES directory path definitions. *
- *****************************************************************************/
-
-extern char *DatabaseName;
-extern char *DatabasePath;
-
-/* in utils/misc/database.c */
-extern void GetRawDatabaseInfo(const char *name, Oid *db_id, char *path);
-extern char *ExpandDatabasePath(const char *path);
-
-/* now in utils/init/miscinit.c */
-extern void SetDatabaseName(const char *name);
-extern void SetDatabasePath(const char *path);
-
-extern char *GetUserNameFromId(Oid userid);
-
-extern Oid GetUserId(void);
-extern void SetUserId(Oid userid);
-extern Oid GetSessionUserId(void);
-extern void SetSessionUserId(Oid userid);
-extern void InitializeSessionUserId(const char *username);
-extern void InitializeSessionUserIdStandalone(void);
-extern void SetSessionAuthorization(Oid userid);
-
-extern void SetDataDir(const char *dir);
-
-extern int FindExec(char *full_path, const char *argv0,
- const char *binary_name);
-extern int CheckPathAccess(char *path, char *name, int open_mode);
-
-#ifdef CYR_RECODE
-extern void SetCharSet(void);
-extern char *convertstr(unsigned char *buff, int len, int dest);
-#endif
-
-/* in utils/misc/superuser.c */
-extern bool superuser(void); /* current user is superuser */
-extern bool superuser_arg(Oid userid); /* given user is superuser */
-extern bool is_dbadmin(Oid dbid); /* current user is owner of
- * database */
-
-
-/*****************************************************************************
- * pmod.h -- *
- * POSTGRES processing mode definitions. *
- *****************************************************************************/
-
-/*
- * Description:
- * There are three processing modes in POSTGRES. They are
- * BootstrapProcessing or "bootstrap," InitProcessing or
- * "initialization," and NormalProcessing or "normal."
- *
- * The first two processing modes are used during special times. When the
- * system state indicates bootstrap processing, transactions are all given
- * transaction id "one" and are consequently guaranteed to commit. This mode
- * is used during the initial generation of template databases.
- *
- * Initialization mode: used while starting a backend, until all normal
- * initialization is complete. Some code behaves differently when executed
- * in this mode to enable system bootstrapping.
- *
- * If a POSTGRES binary is in normal mode, then all code may be executed
- * normally.
- */
-
-typedef enum ProcessingMode
-{
- BootstrapProcessing, /* bootstrap creation of template database */
- InitProcessing, /* initializing system */
- NormalProcessing /* normal processing */
-} ProcessingMode;
-
-extern ProcessingMode Mode;
-
-#define IsBootstrapProcessingMode() ((bool)(Mode == BootstrapProcessing))
-#define IsInitProcessingMode() ((bool)(Mode == InitProcessing))
-#define IsNormalProcessingMode() ((bool)(Mode == NormalProcessing))
-
-#define SetProcessingMode(mode) \
- do { \
- AssertArg((mode) == BootstrapProcessing || \
- (mode) == InitProcessing || \
- (mode) == NormalProcessing); \
- Mode = (mode); \
- } while(0)
-
-#define GetProcessingMode() Mode
-
-
-/*****************************************************************************
- * pinit.h -- *
- * POSTGRES initialization and cleanup definitions. *
- *****************************************************************************/
-
-/* in utils/init/postinit.c */
-extern void InitPostgres(const char *dbname, const char *username);
-extern void BaseInit(void);
-
-/* in utils/init/miscinit.c */
-extern bool CreateDataDirLockFile(const char *datadir, bool amPostmaster);
-extern bool CreateSocketLockFile(const char *socketfile, bool amPostmaster);
-extern void TouchSocketLockFile(void);
-extern void RecordSharedMemoryInLockFile(unsigned long id1,
- unsigned long id2);
-
-extern void ValidatePgVersion(const char *path);
-
-/* these externs do not belong here... */
-extern void IgnoreSystemIndexes(bool mode);
-extern bool IsIgnoringSystemIndexes(void);
-extern bool IsCacheInitialized(void);
-
-#endif /* MISCADMIN_H */