aboutsummaryrefslogtreecommitdiff
path: root/src/include/config.h.in
blob: 00db98f1abcfe1995156e125451e31db1df0c729 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
/* the purpose of this file is to reduce the use of #ifdef's through
 * the code base by those porting the software, and to facilitate the
 * eventual use of autoconf to build the server 
 */

#ifndef CONFIG_H
#define CONFIG_H

#define BLCKSZ	8192

/* 
 * The following is set using configure.  
 */

/* Set to 1 if you have <netdb.h> */
#undef HAVE_NETDB_H

/* Set to 1 if you have <endian.h> */
#undef HAVE_ENDIAN_H

/* Set to 1 if you have <crypt.h> */
#undef HAVE_CRYPT_H

/* Set to 1 if you have <termios.h> */
#undef HAVE_TERMIOS_H

/* Set to 1 if you have <float.h> */
#undef HAVE_FLOAT_H

/* Set to 1 if you have <limits.h> */
#undef HAVE_LIMITS_H

/* Set to 1 if  you have <values.h> */
#undef HAVE_VALUES_H

/* Set to 1 if  you have <sys/select.h> */
#undef HAVE_SYS_SELECT_H

/* Set to 1 if you have <readline.h> */
#undef HAVE_READLINE_H

/* Set to 1 if you have <history.h> */
#undef HAVE_HISTORY

/* Set to 1 if you have <readline/history.h> */
#undef HAVE_READLINE_HISTORY_H

/* Set to 1 if you have <dld.h> */
#undef HAVE_DLD_H

/* Set to 1 if you have isinf() */
#undef HAVE_ISINF

/* Set to 1 if you have tzset() */
#undef HAVE_TZSET

/* Set to 1 if you have gethostname() */
#undef HAVE_GETHOSTNAME
#ifndef HAVE_GETHOSTNAME
extern int  gethostname(char *name, int namelen);
#endif

/* Set to 1 if you have int timezone */
#undef HAVE_INT_TIMEZONE

/* Set to 1 if you have cbrt() */
#undef HAVE_CBRT

/* Set to 1 if you have inet_aton() */
#undef HAVE_INET_ATON
#ifndef HAVE_INET_ATON
extern int  inet_aton(const char *cp, struct in_addr * addr);
#endif

/* Set to 1 if you have fcvt() */
#undef HAVE_FCVT

/* Set to 1 if you have strerror() */
#undef HAVE_STRERROR

/* Set to 1 if you have rint() */
#undef HAVE_RINT 

/* Set to 1 if you have memmove() */
#undef HAVE_MEMMOVE

/* Set to 1 if you have sigsetjmp() */
#undef HAVE_SIGSETJMP

/* Set to 1 if you have kill() */
#undef HAVE_KILL

/* Set to 1 if you have vfork() */
#undef HAVE_VFORK

/* Set to 1 if you have sysconf() */
#undef HAVE_SYSCONF

/* Set to 1 if you have getrusage() */
#undef HAVE_GETRUSAGE

/* Set to 1 if you have waitpid() */
#undef HAVE_WAITPID

/* Set to 1 if you have setsid() */
#undef HAVE_SETSID

/* Set to 1 if you have sigprocmask() */
#undef HAVE_SIGPROCMASK

/* Set to 1 if you have sigprocmask() */
#undef HAVE_STRCASECMP
#ifndef HAVE_STRCASECMP
extern int  strcasecmp(char *s1, char *s2);
#endif

/* Set to 1 if you have strtol() */
#undef HAVE_STRTOL

/* Set to 1 if you have strdup() */
#undef HAVE_STRDUP
#ifndef HAVE_STRDUP
extern char *strdup(char const *);
#endif

/* Set to 1 if you have random() */
#undef HAVE_RANDOM
#ifndef HAVE_RANDOM
extern long random(void);
#endif

/* Set to 1 if you have srandom() */
#undef HAVE_SRANDOM
#ifndef HAVE_SRANDOM
extern void srandom(int seed);
#endif

/* Set to 1 if you have libreadline.a */
#undef HAVE_LIBREADLINE

/* Set to 1 if you have libhistory.a */
#undef HAVE_LIBHISTORY

/* Set to 1 if you have union semun */
#undef HAVE_UNION_SEMUN

/* Set to 1 if you want to USE_LOCALE */
#undef USE_LOCALE

/* Set to 1 if you want to Disable ASSERT CHECKING */
#undef NO_ASSERT_CHECKING

/*
 * Code below this point should not require changes
 */

#include "os.h"

/*
 * The following is used as the arg list for signal handlers.  Any ports
 * that take something other than an int argument should change this in
 * the port specific makefile.  Note that variable names are required
 * because it is used in both the prototypes as well as the definitions.
 * Note also the long name.  We expect that this won't collide with
 * other names causing compiler warnings.
 */ 

#ifndef       SIGNAL_ARGS
#  define SIGNAL_ARGS int postgres_signal_arg
#endif

/* 
 * DEF_PGPORT is the TCP port number on which the Postmaster listens by
 * default.  This can be overriden by command options, environment variables,
 * and the postconfig hook. (set by build script)
 */ 

#undef DEF_PGPORT 

/*
 * If you do not plan to use Host based authentication,
 * comment out the following line (set by build script)
 */
#undef HBA

/*
 * On architectures for which we have not implemented spinlocks (or
 * cannot do so), we use System V semaphores.  We also use them for
 * long locks.  For some reason union semun is never defined in the
 * System V header files so we must do it ourselves.
 */

/*  Debug and various "defines" that should be documented */

/* found in function aclparse() in src/backend/utils/adt/acl.c */
/* #define ACLDEBUG */

/* found in src/backend/utils/adt/arrayfuncs.c
   code seems broken without it, Bruce Momjian */
/* #define LOARRAY */

/* This is the time, in seconds, at which a given backend server
 * will wait on a lock before deciding to abort the transaction
 * (this is what we do in lieu of deadlock detection).
 *
 * Low numbers are not recommended as they will tend to cause
 * false aborts if many transactions are long-lived.
 */
#define DEADLOCK_TIMEOUT 60

/*
 * This flag enables the use of idexes in plans generated for function
 * executions which normally are always executed with sequential scans.
 */
#define INDEXSCAN_PATCH 

/* #define DATEDEBUG */

/*
 * Define this if you want to use date constants with a short year
 * like '01/05/96'.
 */
/* #define USE_SHORT_YEAR */

/*
 * defining unsafe floats's will make float4 and float8
 * ops faster at the cost of safety, of course!        
 */
/* #define UNSAFE_FLOATS */

/*
 * There is a bug in the function executor. The backend crashes while trying to
 * execute an sql function containing an utility command (create, notify, ...).
 * The bug is part in the planner, which returns a number of plans different
 * than the number of commands if there are utility commands in the query, and
 * in part in the function executor which assumes that all commands are normal
 * query commands and causes a SIGSEGV trying to execute commands without plan.
 */
#define FUNC_UTIL_PATCH

/*
 * Define this if you want to retrieve arrays attributes as Tcl lists instead
 * of postgres C-like arrays, for example {{"a1" "a2"} {"b1" "b2"}} instead 
 * of {{"a1","a2"},{"b1","b2"}}.
 */
#define TCL_ARRAYS

/*
 * The comparison routines for text and char data type give incorrect results
 * if the input data contains characters greater than 127.  As these routines
 * perform the comparison using signed char variables all character codes
 * greater than 127 are interpreted as less than 0.  These codes are used to
 * encode the iso8859 char sets.  Define this flag to correct the problem.
 */
#define UNSIGNED_CHAR_TEXT

/*
 * The following flag allows limiting the number of rows returned by a query.
 * You will need the loadable module utils.c to use this feature.
 */
#define QUERY_LIMIT

/*
 * The following flag allows copying tables from files with number of columns
 * different than the number of attributes setting missing attributes to NULL
 * and ignoring extra columns.  This also avoids the shift of the attributes
 * of the rest of the file if one line has a wrong column count.
 */
#define COPY_PATCH

/*
 * User locks are handled totally on the application side as long term
 * cooperative locks which extend beyond the normal transaction boundaries.
 * Their purpose is to indicate to an application that someone is `working'
 * on an item.  Define this flag to enable user locks.  You will need the
 * loadable module user-locks.c to use this feature.
 */
#define USER_LOCKS

/* Debug #defines */
/* #define IPORTAL_DEBUG  */
/* #define HEAPDEBUGALL  */
/* #define ISTRATDEBUG  */
/* #define FASTBUILD_DEBUG */
#define RTDEBUG 
#define GISTDEBUG 
/* #define DEBUG_RECIPE */
/* #define ASYNC_DEBUG */
/* #define COPY_DEBUG */
/* #define VACUUM_DEBUG */
/* #define NBTINSERT_PATCH_DEBUG */


/* The following don't have any apparent purpose, but are in the
 * code.  someday, will take them out altogether, but for now, 
 * document them here
 */
/* #define OMIT_PARTIAL_INDEX */
/* #define NO_BUFFERISVALID   */
/* #define NO_SECURITY        */
/* #define TIOGA              */
/* #define OLD_REWRITE        */
/* #define NOTYET             */

/* Genetic Query Optimization (GEQO):
 * 
 * The GEQO module in PostgreSQL is intended for the solution of the
 * query optimization problem by means of a Genetic Algorithm (GA).
 * It allows the handling of large JOIN queries through non-exhaustive
 * search.
 * For further information see README.GEQO <utesch@aut.tu-freiberg.de>.
 */
#define GEQO /* backend/optimizer/path/allpaths.c */

/*
 * Define this if you want psql to _always_ ask for a username and a password
 * for password authentication.
 */
/* #define PSQL_ALWAYS_GET_PASSWORDS */

/*
 * Use btree bulkload code: 
 * this code is moderately slow (~10% slower) compared to the regular
 * btree (insertion) build code on sorted or well-clustered data.  on
 * random data, however, the insertion build code is unusable -- the
 * difference on a 60MB heap is a factor of 15 because the random
 * probes into the btree thrash the buffer pool.
 *
 * Great thanks to Paul M. Aoki (aoki@CS.Berkeley.EDU)
 */
#define FASTBUILD /* access/nbtree/nbtsort.c */

/* 
 * BTREE_VERSION_1: we must guarantee that all tuples in A LEVEL
 * are unique, not in ALL INDEX. So, we can use bti_itup->t_tid                
 * as unique identifier for a given index tuple (logical position
 * within a level) and take off bti_oid & bti_dummy (8 bytes total)
 * from btree items.
 */
#define BTREE_VERSION_1

/*
 * TBL_FREE_CMD_MEMORY: free memory allocated for an user query inside
 * transaction block after this query is done. 
 */
#define TBL_FREE_CMD_MEMORY

#endif /* CONFIG_H */