summaryrefslogtreecommitdiff
path: root/src/include/pg_config.h.in
Commit message (Collapse)AuthorAgeFilesLines
* Make pgbench use erand48() rather than random().Robert Haas2011-08-031-3/+0
| | | | | | | | | | | | | | | | | | glibc renders random() thread-safe by wrapping a futex lock around it; testing reveals that this limits the performance of pgbench on machines with many CPU cores. Rather than switching to random_r(), which is only available on GNU systems and crashes unless you use undocumented alchemy to initialize the random state properly, switch to our built-in implementation of erand48(), which is both thread-safe and concurrent. Since the list of reasons not to use the operating system's erand48() is getting rather long, rename ours to pg_erand48() (and similarly for our implementations of lrand48() and srand48()) and just always use those. We were already doing this on Cygwin anyway, and the glibc implementation is not quite thread-safe, so pgbench wouldn't be able to use that either. Per discussion with Tom Lane.
* Rewrite libxml error handling to be more robust.Tom Lane2011-07-201-0/+3
| | | | | | | | | | | | | | | | | | | | | libxml reports some errors (like invalid xmlns attributes) via the error handler hook, but still returns a success indicator to the library caller. This causes us to miss some errors that are important to report. Since the "generic" error handler hook doesn't know whether the message it's getting is for an error, warning, or notice, stop using that and instead start using the "structured" error handler hook, which gets enough information to be useful. While at it, arrange to save and restore the error handler hook setting in each libxml-using function, rather than assuming we can set and forget the hook. This should improve the odds of working nicely with third-party libraries that also use libxml. In passing, volatile-ize some local variables that get modified within PG_TRY blocks. I noticed this while testing with an older gcc version than I'd previously tried to compile xml.c with. Florian Pflug and Tom Lane, with extensive review/testing by Noah Misch
* Start using flexible array membersPeter Eisentraut2011-06-161-0/+9
| | | | | | | | | | | | Flexible array members are a C99 feature that avoids "cheating" in the declaration of variable-length arrays at the end of structs. With Autoconf support, this should be transparent for older compilers. We start with one use in gist.h because gcc 4.6 started to raise a warning there. Over time, it can be expanded to other places in the source, but they will likely need some review of sizeof and offsetof usage. The current change in gist.h appears to be safe in this regard.
* Replace use of credential control messages with getsockopt(LOCAL_PEERCRED).Tom Lane2011-05-311-6/+3
| | | | | | | | | | | | | | | | | | | | | | | | It turns out the reason we hadn't found out about the portability issues with our credential-control-message code is that almost no modern platforms use that code at all; the ones that used to need it now offer getpeereid(), which we choose first. The last holdout was NetBSD, and they added getpeereid() as of 5.0. So far as I can tell, the only live platform on which that code was being exercised was Debian/kFreeBSD, ie, FreeBSD kernel with Linux userland --- since glibc doesn't provide getpeereid(), we fell back to the control message code. However, the FreeBSD kernel provides a LOCAL_PEERCRED socket parameter that's functionally equivalent to Linux's SO_PEERCRED. That is both much simpler to use than control messages, and superior because it doesn't require receiving a message from the other end at just the right time. Therefore, add code to use LOCAL_PEERCRED when necessary, and rip out all the credential-control-message code in the backend. (libpq still has such code so that it can still talk to pre-9.1 servers ... but eventually we can get rid of it there too.) Clean up related autoconf probes, too. This means that libpq's requirepeer parameter now works on exactly the same platforms where the backend supports peer authentication, so adjust the documentation accordingly.
* Fix char2wchar/wchar2char to support collations properly.Tom Lane2011-04-231-0/+3
| | | | | | | | | | | | | | | | | These functions should take a pg_locale_t, not a collation OID, and should call mbstowcs_l/wcstombs_l where available. Where those functions are not available, temporarily select the correct locale with uselocale(). This change removes the bogus assumption that all locales selectable in a given database have the same wide-character conversion method; in particular, the collate.linux.utf8 regression test now passes with LC_CTYPE=C, so long as the database encoding is UTF8. I decided to move the char2wchar/wchar2char functions out of mbutils.c and into pg_locale.c, because they work on wchar_t not pg_wchar_t and thus don't really belong with the mbutils.c functions. Keeping them where they were would have required importing pg_locale_t into pg_wchar.h somehow, which did not seem like a good plan.
* Per-column collation supportPeter Eisentraut2011-02-081-0/+6
| | | | | | | | This adds collation support for columns and domains, a COLLATE clause to override it per expression, and B-tree index support. Peter Eisentraut reviewed by Pavel Stehule, Itagaki Takahiro, Robert Haas, Noah Misch
* autoreconfPeter Eisentraut2011-01-271-0/+3
| | | | | | Synchronize pg_config.h.in with configure.in (someone must have forgotten to run autoheader or autoreconf), and clean up some spurious change in configure introduced by the last commit there.
* Only build in crashdump support on Windows if there's a working dbghelp.h.Andrew Dunstan2010-12-261-0/+3
|
* Replace self written 'long long int' configure test by standard ↵Michael Meskes2010-05-251-2/+2
| | | | 'AC_TYPE_LONG_LONG_INT' macro call.
* Added a configure test for "long long" datatypes. So far this is only used ↵Michael Meskes2010-05-251-0/+3
| | | | in ecpg and replaces the old test that was kind of hackish.
* Fix up lame idea of not using autoconf to determine if platform has scandir().Tom Lane2010-05-131-0/+3
| | | | Should fix buildfarm failures.
* Support inlining various small performance-critical functions on non-GCCTom Lane2010-02-131-0/+4
| | | | | | | | | compilers, by applying a configure check to see if the compiler will accept an unreferenced "static inline foo ..." function without warnings. It is believed that such warnings are the only reason not to declare inlined functions in headers, if the compiler understands "inline" at all. Kurt Harriman
* Alter the configure script to fail immediately if the C compiler does notTom Lane2010-01-071-3/+2
| | | | | | | | | | | | | | provide a working 64-bit integer datatype. As recently noted, we've been broken on such platforms since early in the 8.4 development cycle. Since it took nearly two years for anyone to even notice, it seems that the rationale for continuing to support such platforms has reached the point of non-existence. Rather than thrashing around to try to make it work again, we'll just admit up front that this no longer works. Back-patch to 8.4 since that branch is also broken. We should go around to remove INT64_IS_BUSTED support, but just in HEAD, so that seems like material for a separate commit.
* Redefine Datum as uintptr_t, instead of unsigned long.Tom Lane2009-12-311-3/+17
| | | | | | | This is more in keeping with modern practice, and is a first step towards porting to Win64 (which has sizeof(pointer) > sizeof(long)). Tsutomu Yamada, Magnus Hagander, Tom Lane
* Support "samehost" and "samenet" specifications in pg_hba.conf,Tom Lane2009-10-011-0/+15
| | | | | | by enumerating the machine's IP interfaces to look for a match. Stef Walter
* Write psql's ~/.psql_history file using history_truncate_file() andTom Lane2009-09-131-3/+6
| | | | | | | | | | append_history(), if libreadline is new enough to have those functions (they seem to be present at least since 4.2; but libedit may not have them). This gives significantly saner behavior when two or more sessions overlap in their use of the history file; although having two sessions exit at just the same time is still perilous to your history. The behavior of \s remains unchanged, ie, overwrite whatever was there. Per bug #5052 from Marek Wójtowicz.
* Add erand48() to the set of functions supported by our src/port/ library,Tom Lane2009-07-161-0/+3
| | | | | | | | | | | | and extend configure to test for it properly instead of hard-wiring an assumption that everybody but Windows has the rand48 functions. (We do cheat to the extent of assuming that probing for erand48 will do for the entire rand48 family.) erand48() is unused as of this commit, but a followon patch will cause GEQO to depend on it. Andres Freund, additional hacking by Tom
* Upgrade to Autoconf 2.63Peter Eisentraut2009-07-021-3/+14
| | | | | | | | This upgrades the configure infrastructure to the latest Autoconf version. Some notable news are: - The workaround for the broken fseeko() test is gone. - Checking for unknown options is now provided by Autoconf itself. - Fixes for Mac OS X
* Make an attempt at fixing our current Solaris 11 breakage: add a configureTom Lane2009-04-041-0/+3
| | | | | probe for opterr (exactly like the one for optreset) and have getopt.c define the variables only if configure doesn't find them in libc.
* Re-enable the old code in xlog.c that tried to use posix_fadvise(), so thatTom Lane2009-01-111-0/+3
| | | | | | | we can get some buildfarm feedback about whether that function is still problematic. (Note that the planned async-preread patch will not really prove anything one way or the other in buildfarm testing, since it will be inactive with default GUC settings.)
* Doesn't seem like a good idea to be doing AC_CHECK_SIZEOF(void *) so muchTom Lane2009-01-061-0/+3
| | | | | earlier than all the other sizeof checks, and it certainly fails to follow the order suggested at the file head. Rearrange.
* Append major version number and for libraries soname major version numberPeter Eisentraut2008-12-111-0/+3
| | | | | | | to the gettext domain name, to simplify parallel installations. Also, rename set_text_domain() to pg_bindtextdomain(), because that is what it does.
* Change wildcard cerfificate mapping to be much simler - we now only matchMagnus Hagander2008-12-021-3/+0
| | | | | | | | the * character at the beginning of a pattern, and it does not match subdomains. Since this means we no longer need fnmatch, remove the imported implementation from port, along with the autoconf check for it.
* Add support for matching wildcard server certificates to the new SSL code.Magnus Hagander2008-11-241-0/+3
| | | | | This uses the function fnmatch() which is not available on all platforms (notably Windows), so import the implementation from NetBSD into src/port.
* Ident authentication over Unix-domain sockets on Solaris, usingPeter Eisentraut2008-11-181-0/+6
| | | | | | getpeerucred() function. Author: Garick Hamlin <ghamlin@isc.upenn.edu>
* Extend yesterday's patch making BLCKSZ and RELSEG_SIZE configurable to alsoTom Lane2008-05-021-0/+12
| | | | | | let XLOG_BLCKSZ and XLOG_SEG_SIZE be set via configure. Per a proposal by Mark Wong, though I thought it better to call the switches after "wal" rather than "xlog".
* Remove the recently added USE_SEGMENTED_FILES option, and indeed remove allTom Lane2008-05-021-3/+22
| | | | | | | | | | support for a nonsegmented mode from md.c. Per recent discussions, there doesn't seem to be much value in a "never segment" option as opposed to segmenting with a suitably large segment size. So instead provide a configure-time switch to set the desired segment size in units of gigabytes. While at it, expose a configure switch for BLCKSZ as well. Zdenek Kotala
* Allow float8, int8, and related datatypes to be passed by value on machinesTom Lane2008-04-211-0/+15
| | | | | | | | | | where Datum is 8 bytes wide. Since this will break old-style C functions (those still using version 0 calling convention) that have arguments or results of these types, provide a configure option to disable it and retain the old pass-by-reference behavior. Likewise, provide a configure option to disable the recently-committed float4 pass-by-value change. Zoltan Boszormenyi, plus configurability stuff by me.
* Provide a build-time option to store large relations as single files, ratherTom Lane2008-03-101-0/+6
| | | | | | | | than dividing them into 1GB segments as has been our longtime practice. This requires working support for large files in the operating system; at least for the time being, it won't be the default. Zdenek Kotala
* Upgrade to Autoconf 2.61:Peter Eisentraut2008-02-171-9/+11
| | | | | | | | | - Change configure.in to use Autoconf 2.61 and update generated files. - Update build system and documentation to support now directory variables offered by Autoconf 2.61. - Replace usages of PGAC_CHECK_ALIGNOF by AC_CHECK_ALIGNOF, now available in Autoconf 2.61. - Drop our patched version of AC_C_INLINE, as Autoconf now has the change.
* Change /contrib to contrib for consistency.Peter Eisentraut2008-01-241-1/+1
|
* Document that configure option only affects contrib:Bruce Momjian2007-11-051-1/+2
| | | | --with-ossp-uuid use OSSP UUID library when building /contrib/uuid-ossp
* New versions of mingw have gettimeofday(), so add an autoconf testMagnus Hagander2007-10-291-0/+3
| | | | for this.
* Make configure probe for the location of the <uuid.h> header file.Tom Lane2007-10-231-0/+6
| | | | | Needed to accommodate different layout on some platforms (Debian for one). Heikki Linnakangas
* Cope with ERR_set_mark() and ERR_pop_to_mark() not existing in olderTom Lane2007-10-021-0/+3
| | | | | | OpenSSL libraries --- just don't call them if they're not there. This might possibly lead to misleading error messages, but we'll just have to live with that.
* If we're gonna provide an --enable-profiling configure option, surelyTom Lane2007-09-211-1/+2
| | | | it ought to know that you need -DLINUX_PROFILE on Linux.
* Support GSSAPI builds where the header is <gssapi.h> and not <gssapi/gssapi.h>,Magnus Hagander2007-07-121-0/+6
| | | | | | such as OpenBSD (possibly all Heimdal). Stefan Kaltenbrunner
* Fix freenig of names in Kerberos when using MIT - need to use theMagnus Hagander2007-07-121-0/+3
| | | | | | free function provided in the Kerberos library. This fixes a very hard to track down heap corruption on windows when using debug runtimes.
* Fix misspelling.Tom Lane2007-07-101-3/+3
|
* Add support for GSSAPI authentication.Magnus Hagander2007-07-101-0/+3
| | | | | | Documentation still being written, will be committed later. Henry B. Hotz and Magnus Hagander
* tas() support for Renesas' M32R processor. Kazuhiro InaokaTom Lane2007-05-041-0/+6
|
* Add --with-libxslt configure optionAndrew Dunstan2007-04-151-0/+3
|
* Now that core functionality is depending on autoconf's AC_C_BIGENDIAN to beTom Lane2007-04-061-3/+0
| | | | | | right, there seems precious little reason to have a pile of hand-maintained endianness definitions in src/include/port/*.h. Get rid of those, and make the couple of places that used them depend on WORDS_BIGENDIAN instead.
* Support varlena fields with single-byte headers and unaligned storage.Tom Lane2007-04-061-0/+4
| | | | | | | | | This commit breaks any code that assumes that the mere act of forming a tuple (without writing it to disk) does not "toast" any fields. While all available regression tests pass, I'm not totally sure that we've fixed every nook and cranny, especially in contrib. Greg Stark with some help from Tom Lane
* Seems some people have been forgetting to run autoheader.Tom Lane2007-03-261-0/+3
|
* Add configure --enable-profiling to enable GCC profiling. Patches fromBruce Momjian2007-02-211-0/+3
| | | | Korry Douglas and Nikhil S
* Add strlcat() from OpenBSD, to be used for replacing strncat and otherPeter Eisentraut2007-02-071-0/+7
| | | | strange coding practices.
* Use autoconf build-in sys_siglist macro AC_DECL_SYS_SIGLIST, rather thanBruce Momjian2007-01-281-3/+4
| | | | create our own.
* Use sys_siglist[] to print out signal names for signal exits, ratherBruce Momjian2007-01-281-0/+3
| | | | than just numbers.
* finite() no longer used; remove finite() platform-specificBruce Momjian2007-01-021-3/+0
| | | | infrastructure.