Increase NUM_AUXILIARY_PROCS, now that the startup process can co-exist
[PostgreSQL.git] / src / include / pg_config_manual.h
blobb68bfe22b4210a2a8f7198d59d791df2507574f5
1 /*------------------------------------------------------------------------
2 * PostgreSQL manual configuration settings
4 * This file contains various configuration symbols and limits. In
5 * all cases, changing them is only useful in very rare situations or
6 * for developers. If you edit any of these, be sure to do a *full*
7 * rebuild (and an initdb if noted).
9 * $PostgreSQL$
10 *------------------------------------------------------------------------
14 * Maximum length for identifiers (e.g. table names, column names,
15 * function names). Names actually are limited to one less byte than this,
16 * because the length must include a trailing zero byte.
18 * Changing this requires an initdb.
20 #define NAMEDATALEN 64
23 * Maximum number of arguments to a function.
25 * The minimum value is 8 (index cost estimation uses 8-argument functions).
26 * The maximum possible value is around 600 (limited by index tuple size in
27 * pg_proc's index; BLCKSZ larger than 8K would allow more). Values larger
28 * than needed will waste memory and processing time, but do not directly
29 * cost disk space.
31 * Changing this does not require an initdb, but it does require a full
32 * backend recompile (including any user-defined C functions).
34 #define FUNC_MAX_ARGS 100
37 * Maximum number of columns in an index. There is little point in making
38 * this anything but a multiple of 32, because the main cost is associated
39 * with index tuple header size (see access/itup.h).
41 * Changing this requires an initdb.
43 #define INDEX_MAX_KEYS 32
46 * Set the upper and lower bounds of sequence values.
48 #ifndef INT64_IS_BUSTED
49 #define SEQ_MAXVALUE INT64CONST(0x7FFFFFFFFFFFFFFF)
50 #else /* INT64_IS_BUSTED */
51 #define SEQ_MAXVALUE ((int64) 0x7FFFFFFF)
52 #endif /* INT64_IS_BUSTED */
54 #define SEQ_MINVALUE (-SEQ_MAXVALUE)
57 * Number of spare LWLocks to allocate for user-defined add-on code.
59 #define NUM_USER_DEFINED_LWLOCKS 4
62 * Define this if you want psql to _always_ ask for a username and a
63 * password for password authentication.
65 /* #define PSQL_ALWAYS_GET_PASSWORDS */
68 * Define this if you want to allow the lo_import and lo_export SQL
69 * functions to be executed by ordinary users. By default these
70 * functions are only available to the Postgres superuser. CAUTION:
71 * These functions are SECURITY HOLES since they can read and write
72 * any file that the PostgreSQL server has permission to access. If
73 * you turn this on, don't say we didn't warn you.
75 /* #define ALLOW_DANGEROUS_LO_FUNCTIONS */
78 * MAXPGPATH: standard size of a pathname buffer in PostgreSQL (hence,
79 * maximum usable pathname length is one less).
81 * We'd use a standard system header symbol for this, if there weren't
82 * so many to choose from: MAXPATHLEN, MAX_PATH, PATH_MAX are all
83 * defined by different "standards", and often have different values
84 * on the same platform! So we just punt and use a reasonably
85 * generous setting here.
87 #define MAXPGPATH 1024
90 * PG_SOMAXCONN: maximum accept-queue length limit passed to
91 * listen(2). You'd think we should use SOMAXCONN from
92 * <sys/socket.h>, but on many systems that symbol is much smaller
93 * than the kernel's actual limit. In any case, this symbol need be
94 * twiddled only if you have a kernel that refuses large limit values,
95 * rather than silently reducing the value to what it can handle
96 * (which is what most if not all Unixen do).
98 #define PG_SOMAXCONN 10000
101 * You can try changing this if you have a machine with bytes of
102 * another size, but no guarantee...
104 #define BITS_PER_BYTE 8
107 * Preferred alignment for disk I/O buffers. On some CPUs, copies between
108 * user space and kernel space are significantly faster if the user buffer
109 * is aligned on a larger-than-MAXALIGN boundary. Ideally this should be
110 * a platform-dependent value, but for now we just hard-wire it.
112 #define ALIGNOF_BUFFER 32
115 * Disable UNIX sockets for certain operating systems.
117 #if defined(WIN32)
118 #undef HAVE_UNIX_SOCKETS
119 #endif
122 * Define this if your operating system supports link()
124 #if !defined(WIN32) && !defined(__CYGWIN__)
125 #define HAVE_WORKING_LINK 1
126 #endif
129 * USE_POSIX_FADVISE controls whether Postgres will attempt to use the
130 * posix_fadvise() kernel call. Usually the automatic configure tests are
131 * sufficient, but some older Linux distributions had broken versions of
132 * posix_fadvise(). If necessary you can remove the #define here.
134 #if HAVE_DECL_POSIX_FADVISE && defined(HAVE_POSIX_FADVISE)
135 #define USE_POSIX_FADVISE
136 #endif
139 * USE_PREFETCH code should be compiled only if we have a way to implement
140 * prefetching. (This is decoupled from USE_POSIX_FADVISE because there
141 * might in future be support for alternative low-level prefetch APIs.)
143 #ifdef USE_POSIX_FADVISE
144 #define USE_PREFETCH
145 #endif
148 * This is the default directory in which AF_UNIX socket files are
149 * placed. Caution: changing this risks breaking your existing client
150 * applications, which are likely to continue to look in the old
151 * directory. But if you just hate the idea of sockets in /tmp,
152 * here's where to twiddle it. You can also override this at runtime
153 * with the postmaster's -k switch.
155 #define DEFAULT_PGSOCKET_DIR "/tmp"
158 * The random() function is expected to yield values between 0 and
159 * MAX_RANDOM_VALUE. Currently, all known implementations yield
160 * 0..2^31-1, so we just hardwire this constant. We could do a
161 * configure test if it proves to be necessary. CAUTION: Think not to
162 * replace this with RAND_MAX. RAND_MAX defines the maximum value of
163 * the older rand() function, which is often different from --- and
164 * considerably inferior to --- random().
166 #define MAX_RANDOM_VALUE (0x7FFFFFFF)
170 *------------------------------------------------------------------------
171 * The following symbols are for enabling debugging code, not for
172 * controlling user-visible features or resource limits.
173 *------------------------------------------------------------------------
177 * Define this to cause pfree()'d memory to be cleared immediately, to
178 * facilitate catching bugs that refer to already-freed values.
179 * Right now, this gets defined automatically if --enable-cassert.
181 #ifdef USE_ASSERT_CHECKING
182 #define CLOBBER_FREED_MEMORY
183 #endif
186 * Define this to check memory allocation errors (scribbling on more
187 * bytes than were allocated). Right now, this gets defined
188 * automatically if --enable-cassert.
190 #ifdef USE_ASSERT_CHECKING
191 #define MEMORY_CONTEXT_CHECKING
192 #endif
195 * Define this to cause palloc()'d memory to be filled with random data, to
196 * facilitate catching code that depends on the contents of uninitialized
197 * memory. Caution: this is horrendously expensive.
199 /* #define RANDOMIZE_ALLOCATED_MEMORY */
202 * Define this to force all parse and plan trees to be passed through
203 * copyObject(), to facilitate catching errors and omissions in
204 * copyObject().
206 /* #define COPY_PARSE_PLAN_TREES */
209 * Enable debugging print statements for lock-related operations.
211 /* #define LOCK_DEBUG */
214 * Enable debugging print statements for WAL-related operations; see
215 * also the wal_debug GUC var.
217 /* #define WAL_DEBUG */
220 * Enable tracing of resource consumption during sort operations;
221 * see also the trace_sort GUC var. For 8.1 this is enabled by default.
223 #define TRACE_SORT 1
226 * Enable tracing of syncscan operations (see also the trace_syncscan GUC var).
228 /* #define TRACE_SYNCSCAN */
231 * Other debug #defines (documentation, anyone?)
233 /* #define HEAPDEBUGALL */
234 /* #define ACLDEBUG */
235 /* #define RTDEBUG */