config.h.in
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:14k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. /* the purpose of this file is to reduce the use of #ifdef's through
  2.  * the code base by those porting the software, and to facilitate the
  3.  * eventual use of autoconf to build the server 
  4.  */
  5. #ifndef CONFIG_H
  6. #define CONFIG_H
  7. /*
  8.  * Default runtime limit on number of backend server processes per postmaster;
  9.  * this is just the default setting for the postmaster's -N switch.
  10.  * (Actual value is set by configure script.)
  11.  */
  12. #undef DEF_MAXBACKENDS
  13. /*
  14.  * Hard limit on number of backend server processes per postmaster.
  15.  * Increasing this costs about 32 bytes per process slot as of v 6.5.
  16.  */
  17. #define MAXBACKENDS (DEF_MAXBACKENDS > 1024 ? DEF_MAXBACKENDS : 1024)
  18. /*
  19.  * Default number of buffers in shared buffer pool (each of size BLCKSZ).
  20.  * This is just the default setting for the postmaster's -B switch.
  21.  * Perhaps it ought to be configurable from a configure switch.
  22.  * NOTE: default setting corresponds to the minimum number of buffers
  23.  * that postmaster.c will allow for the default MaxBackends value.
  24.  */
  25. #define DEF_NBUFFERS (DEF_MAXBACKENDS > 8 ? DEF_MAXBACKENDS * 2 : 16)
  26. /*
  27.  * Size of a disk block --- currently, this limits the size of a tuple.
  28.  * You can set it bigger if you need bigger tuples.
  29.  */
  30. /* currently must be <= 32k bjm */
  31. #define BLCKSZ 8192
  32. /*
  33.  * RELSEG_SIZE is the maximum number of blocks allowed in one disk file.
  34.  * Thus, the maximum size of a single file is RELSEG_SIZE * BLCKSZ;
  35.  * relations bigger than that are divided into multiple files.
  36.  *
  37.  * CAUTION: RELSEG_SIZE * BLCKSZ must be less than your OS' limit on file
  38.  * size.  This is typically 2Gb or 4Gb in a 32-bit operating system.  By
  39.  * default, we make the limit 1Gb to avoid any possible integer-overflow
  40.  * problems within the OS.  A limit smaller than necessary only means we
  41.  * divide a large relation into more chunks than necessary, so it seems
  42.  * best to err in the direction of a small limit.  (Besides, a power-of-2
  43.  * value saves a few cycles in md.c.)
  44.  *
  45.  * CAUTION: you had best do an initdb if you change either BLCKSZ or
  46.  * RELSEG_SIZE.
  47.  */
  48. #define RELSEG_SIZE (0x40000000 / BLCKSZ)
  49. /* Set to 1 if you want to USE_LOCALE */
  50. #undef USE_LOCALE
  51. /* Set to 1 if you want CYR_RECODE (cyrillic recode) */
  52. #undef CYR_RECODE
  53. /* Set to 1 if you want to Enable ASSERT CHECKING */
  54. #undef USE_ASSERT_CHECKING
  55. /* 
  56.  * DEF_PGPORT is the TCP port number on which the Postmaster listens by
  57.  * default.  This can be overriden by command options, environment variables,
  58.  * and the postconfig hook. (set by configure script)
  59.  */ 
  60. #undef DEF_PGPORT 
  61. /*
  62.  * If you do not plan to use Host based authentication,
  63.  * comment out the following line (set by build script)
  64.  */
  65. #undef HBA
  66. /*
  67.  * As soon as the backend blocks on a lock, it waits this number of seconds
  68.  * before checking for a deadlock.
  69.  * We don't check for deadlocks just before sleeping because a deadlock is
  70.  * a rare event, and checking is an expensive operation.
  71.  */
  72. #define DEADLOCK_CHECK_TIMER 1
  73. /*
  74.  * This flag enables the use of indexes in plans generated for function
  75.  * executions which normally are always executed with sequential scans.
  76.  */
  77. #define INDEXSCAN_PATCH 
  78. /*
  79.  * Enables debugging print statements in the date/time support routines.
  80.  * Particularly useful for porting to a new platform/OS combination.
  81.  */
  82. /* #define DATEDEBUG */
  83. /*
  84.  * defining unsafe floats's will make float4 and float8
  85.  * ops faster at the cost of safety, of course!        
  86.  */
  87. /* #define UNSAFE_FLOATS */
  88. /*
  89.  * There is a bug in the function executor. The backend crashes while trying to
  90.  * execute an sql function containing an utility command (create, notify, ...).
  91.  * The bug is part in the planner, which returns a number of plans different
  92.  * than the number of commands if there are utility commands in the query, and
  93.  * in part in the function executor which assumes that all commands are normal
  94.  * query commands and causes a SIGSEGV trying to execute commands without plan.
  95.  */
  96. #define FUNC_UTIL_PATCH
  97. /*
  98.  * Define this to make libpgtcl's "pg_result -assign" command process C-style
  99.  * backslash sequences in returned tuple data and convert Postgres array
  100.  * attributes into Tcl lists.  CAUTION: this conversion is *wrong* unless
  101.  * you install the routines in contrib/string/string_io to make the backend
  102.  * produce C-style backslash sequences in the first place.
  103.  */
  104. /* #define TCL_ARRAYS */
  105. /*
  106.  * The following flag allows copying tables from files with number of columns
  107.  * different than the number of attributes setting missing attributes to NULL
  108.  * and ignoring extra columns.  This also avoids the shift of the attributes
  109.  * of the rest of the file if one line has a wrong column count.
  110.  */
  111. #define COPY_PATCH
  112. /*
  113.  * User locks are handled totally on the application side as long term
  114.  * cooperative locks which extend beyond the normal transaction boundaries.
  115.  * Their purpose is to indicate to an application that someone is `working'
  116.  * on an item.  Define this flag to enable user locks.  You will need the
  117.  * loadable module user-locks.c to use this feature.
  118.  */
  119. #define USER_LOCKS
  120. /* Genetic Query Optimization (GEQO):
  121.  * 
  122.  * The GEQO module in PostgreSQL is intended for the solution of the
  123.  * query optimization problem by means of a Genetic Algorithm (GA).
  124.  * It allows the handling of large JOIN queries through non-exhaustive
  125.  * search.
  126.  * For further information see README.GEQO <utesch@aut.tu-freiberg.de>.
  127.  */
  128. #define GEQO
  129. /*
  130.  * Define this if you want psql to _always_ ask for a username and a password
  131.  * for password authentication.
  132.  */
  133. /* #define PSQL_ALWAYS_GET_PASSWORDS */
  134. /*
  135.  * Define this if you want to allow the lo_import and lo_export SQL functions
  136.  * to be executed by ordinary users.  By default these functions are only
  137.  * available to the Postgres superuser.  CAUTION: these functions are
  138.  * SECURITY HOLES since they can read and write any file that the Postgres
  139.  * backend has permission to access.  If you turn this on, don't say we
  140.  * didn't warn you.
  141.  */
  142. /* #define ALLOW_DANGEROUS_LO_FUNCTIONS */
  143. /*
  144.  * Use btree bulkload code: 
  145.  * this code is moderately slow (~10% slower) compared to the regular
  146.  * btree (insertion) build code on sorted or well-clustered data.  on
  147.  * random data, however, the insertion build code is unusable -- the
  148.  * difference on a 60MB heap is a factor of 15 because the random
  149.  * probes into the btree thrash the buffer pool.
  150.  *
  151.  * Great thanks to Paul M. Aoki (aoki@CS.Berkeley.EDU)
  152.  */
  153. #define FASTBUILD /* access/nbtree/nbtsort.c */
  154. /*
  155.  * TBL_FREE_CMD_MEMORY: free memory allocated for an user query inside
  156.  * transaction block after this query is done. 
  157.  */
  158. #define TBL_FREE_CMD_MEMORY
  159. /*
  160.  * ELOG_TIMESTAMPS: adds a timestamp with the following format to elog
  161.  * messages:  yymmdd.hh:mm:ss.mmm [pid] message
  162.  */
  163. /* #define ELOG_TIMESTAMPS */
  164. /*
  165.  * USE_SYSLOG: use syslog for elog and error messages printed by tprintf
  166.  * and eprintf. This must be activated with the syslog flag in pg_options
  167.  * (syslog=0 for stdio, syslog=1 for stdio+syslog, syslog=2 for syslog).
  168.  * For information see backend/utils/misc/trace.c (Massimo Dal Zotto).
  169.  */
  170. /* #define USE_SYSLOG */
  171. /* Debug #defines */
  172. /* #define IPORTAL_DEBUG  */
  173. /* #define HEAPDEBUGALL  */
  174. /* #define ISTRATDEBUG  */
  175. /* #define FASTBUILD_DEBUG */
  176. /* #define ACLDEBUG */
  177. /* #define RTDEBUG */
  178. /* #define GISTDEBUG */
  179. /* #define OMIT_PARTIAL_INDEX */
  180. /* #define NO_BUFFERISVALID   */
  181. /* #define NO_SECURITY        */
  182. /* #define OLD_REWRITE        */
  183. /*
  184.  *------------------------------------------------------------------------
  185.  * The following is set using configure.  
  186.  *------------------------------------------------------------------------
  187.  */
  188. /* Set to 1 if you have <arpa/inet.h> */
  189. #undef HAVE_ARPA_INET_H
  190. /* Set to 1 if you have <crypt.h> */
  191. #undef HAVE_CRYPT_H
  192. /* Set to 1 if you have <dld.h> */
  193. #undef HAVE_DLD_H
  194. /* Set to 1 if you have <endian.h> */
  195. #undef HAVE_ENDIAN_H
  196. /* Set to 1 if you have <float.h> */
  197. #undef HAVE_FLOAT_H
  198. /* Set to 1 if you have <fp_class.h> */
  199. #undef HAVE_FP_CLASS_H
  200. /* Set to 1 if you have <getopt.h> */
  201. #undef HAVE_GETOPT_H
  202. /* Set to 1 if you have <history.h> */
  203. #undef HAVE_HISTORY_H
  204. /* Set to 1 if you have <ieeefp.h> */
  205. #undef HAVE_IEEEFP_H
  206. /* Set to 1 if you have <limits.h> */
  207. #undef HAVE_LIMITS_H
  208. /* Set to 1 if you have <netdb.h> */
  209. #undef HAVE_NETDB_H
  210. /* Set to 1 if you have <netinet/in.h> */
  211. #undef HAVE_NETINET_IN_H
  212. /* Set to 1 if you have <readline.h> */
  213. #undef HAVE_READLINE_H
  214. /* Set to 1 if you have <readline/history.h> */
  215. #undef HAVE_READLINE_HISTORY_H
  216. /* Set to 1 if you have <readline/readline.h> */
  217. #undef HAVE_READLINE_READLINE_H
  218. /* Set to 1 if  you have <sys/select.h> */
  219. #undef HAVE_SYS_SELECT_H
  220. /* Set to 1 if you have <termios.h> */
  221. #undef HAVE_TERMIOS_H
  222. /* Set to 1 if  you have <values.h> */
  223. #undef HAVE_VALUES_H
  224. /* Define if you have the ANSI C header files.  */
  225. #undef STDC_HEADERS
  226. /* default path for the location of the odbcinst.ini file */
  227. #undef ODBCINST
  228. /* Define if you have the stricmp function.  */
  229. #undef HAVE_STRICMP
  230. /* Set to 1 if you have libreadline and it includes history functions */
  231. #undef HAVE_HISTORY
  232. /*
  233.  * Block of parameters for the ODBC code.
  234.  */
  235. /* Set to 1 if you have <pwd.h> */
  236. #undef HAVE_PWD_H
  237. /* Define if you have the <sys/param.h> header file.  */
  238. #undef HAVE_SYS_PARAM_H
  239. /* Define if you have the dl library (-ldl).  */
  240. #undef HAVE_LIBDL
  241. /*
  242.  * End parameters for ODBC code.
  243.  */
  244. /* Set to 1 if you gettimeofday(a,b) vs gettimeofday(a) */
  245. #undef HAVE_GETTIMEOFDAY_2_ARGS
  246. #ifndef HAVE_GETTIMEOFDAY_2_ARGS
  247. # define gettimeofday(a,b) gettimeofday(a)
  248. #endif
  249. /* Set to 1 if you have snprintf() */
  250. #undef HAVE_SNPRINTF
  251. /* Set to 1 if you have strerror() */
  252. #undef HAVE_STRERROR
  253. /* Set to 1 if you have vsnprintf() */
  254. #undef HAVE_VSNPRINTF
  255. /*
  256.  * Set to 1 if you have isinf().
  257.  * These are all realated to port/isinf.c 
  258.  */
  259. #undef HAVE_FPCLASS
  260. #undef HAVE_FP_CLASS
  261. #undef HAVE_FP_CLASS_H
  262. #undef HAVE_FP_CLASS_D
  263. #undef HAVE_CLASS
  264. #undef HAVE_ISINF
  265. #ifndef HAVE_ISINF
  266. int isinf(double x);
  267. #endif
  268. /* Set to 1 if you have gethostname() */
  269. #undef HAVE_GETHOSTNAME
  270. #ifndef HAVE_GETHOSTNAME
  271. int  gethostname(char *name, int namelen);
  272. #endif
  273. /* Set to 1 if struct tm has a tm_zone member */
  274. #undef HAVE_TM_ZONE
  275. /* Set to 1 if you have int timezone.
  276.  * NOTE: if both tm_zone and a global timezone variable exist,
  277.  * using the tm_zone field should probably be preferred,
  278.  * since global variables are inherently not thread-safe.
  279.  */
  280. #undef HAVE_INT_TIMEZONE
  281. /* Set to 1 if you have cbrt() */
  282. #undef HAVE_CBRT
  283. /* Set to 1 if you have inet_aton() */
  284. #undef HAVE_INET_ATON
  285. #ifndef HAVE_INET_ATON
  286. # ifdef HAVE_ARPA_INET_H
  287. #  ifdef HAVE_NETINET_IN_H
  288. #   include <sys/types.h>
  289. #   include <netinet/in.h>
  290. #  endif
  291. #  include <arpa/inet.h>
  292. # endif
  293. extern int  inet_aton(const char *cp, struct in_addr * addr);
  294. #endif
  295. /* Set to 1 if you have fcvt() */
  296. #undef HAVE_FCVT
  297. /* Set to 1 if you have rint() */
  298. #undef HAVE_RINT 
  299. /* Set to 1 if you have memmove() */
  300. #undef HAVE_MEMMOVE
  301. /* Set to 1 if you have sigsetjmp() */
  302. #undef HAVE_SIGSETJMP
  303. /* Set to 1 if you have sysconf() */
  304. #undef HAVE_SYSCONF
  305. /* Set to 1 if you have getrusage() */
  306. #undef HAVE_GETRUSAGE
  307. /* Set to 1 if you have waitpid() */
  308. #undef HAVE_WAITPID
  309. /* Set to 1 if you have setsid() */
  310. #undef HAVE_SETSID
  311. /* Set to 1 if you have sigprocmask() */
  312. #undef HAVE_SIGPROCMASK
  313. /* Set to 1 if you have sigprocmask() */
  314. #undef HAVE_STRCASECMP
  315. #ifndef HAVE_STRCASECMP
  316. extern int  strcasecmp(char *s1, char *s2);
  317. #endif
  318. /* Set to 1 if you have strtol() */
  319. #undef HAVE_STRTOL
  320. /* Set to 1 if you have strtoul() */
  321. #undef HAVE_STRTOUL
  322. /* Set to 1 if you have strdup() */
  323. #undef HAVE_STRDUP
  324. #ifndef HAVE_STRDUP
  325. extern char *strdup(char const *);
  326. #endif
  327. /* Set to 1 if you have random() */
  328. #undef HAVE_RANDOM
  329. #ifndef HAVE_RANDOM
  330. extern long random(void);
  331. #endif
  332. /* Set to 1 if you have srandom() */
  333. #undef HAVE_SRANDOM
  334. #ifndef HAVE_SRANDOM
  335. extern void srandom(unsigned int seed);
  336. #endif
  337. /* Set to 1 if you have libreadline.a */
  338. #undef HAVE_LIBREADLINE
  339. /* Set to 1 if you have libhistory.a */
  340. #undef HAVE_LIBHISTORY
  341. /*
  342.  * On architectures for which we have not implemented spinlocks (or
  343.  * cannot do so), we use System V semaphores.  We also use them for
  344.  * long locks.  For some reason union semun is never defined in the
  345.  * System V header files so we must do it ourselves.
  346.  */
  347. /* Set to 1 if you have union semun */
  348. #undef HAVE_UNION_SEMUN
  349. /* Set to 1 if you have F_SETLK option for fcntl() */
  350. #undef HAVE_FCNTL_SETLK
  351. /* Set to 1 if type "long int" works and is 64 bits */
  352. #undef HAVE_LONG_INT_64
  353. /* Set to 1 if type "long long int" works and is 64 bits */
  354. #undef HAVE_LONG_LONG_INT_64
  355. /* Define this as the appropriate snprintf format for 64-bit ints, if any */
  356. #undef INT64_FORMAT
  357. /* These must be defined as the alignment requirement (NOT the size) of
  358.  * each of the basic C data types (except char, which we assume has align 1).
  359.  * MAXIMUM_ALIGNOF is the largest alignment requirement for any C data type.
  360.  * ALIGNOF_LONG_LONG_INT need only be defined if HAVE_LONG_LONG_INT_64 is.
  361.  */
  362. #undef ALIGNOF_SHORT
  363. #undef ALIGNOF_INT
  364. #undef ALIGNOF_LONG
  365. #undef ALIGNOF_LONG_LONG_INT
  366. #undef ALIGNOF_DOUBLE
  367. #undef MAXIMUM_ALIGNOF
  368. /* Define const as empty if your compiler doesn't grok const. */
  369. #undef const
  370. /* Define as your compiler's spelling of "inline", or empty if no inline. */
  371. #undef inline
  372. /* Define signed as empty if your compiler doesn't grok "signed char" etc */
  373. #undef signed
  374. /* Define volatile as empty if your compiler doesn't grok volatile. */
  375. #undef volatile
  376. /* Define if your cpp understands the ANSI stringizing operators in macros */
  377. #undef HAVE_STRINGIZE
  378. /* Define as the base type of the last arg to accept */
  379. #undef SOCKET_SIZE_TYPE
  380. /* Define if POSIX signal interface is available */
  381. #undef USE_POSIX_SIGNALS
  382. /*
  383.  * Pull in OS-specific declarations (using link created by configure)
  384.  */
  385. #include "os.h"
  386. /*
  387.  * The following is used as the arg list for signal handlers.  Any ports
  388.  * that take something other than an int argument should change this in
  389.  * the port specific makefile.  Note that variable names are required
  390.  * because it is used in both the prototypes as well as the definitions.
  391.  * Note also the long name.  We expect that this won't collide with
  392.  * other names causing compiler warnings.
  393.  */ 
  394. #ifndef       SIGNAL_ARGS
  395. #  define SIGNAL_ARGS int postgres_signal_arg
  396. #endif
  397. #endif /* CONFIG_H */