postgresql/src/include
Thomas Munro 2dbe890571 Support direct I/O on macOS.
Macs don't understand O_DIRECT, but they can disable caching with a
separate fcntl() call.  Extend the file opening functions in fd.c to
handle this for us if the caller passes in PG_O_DIRECT.

For now, this affects only WAL data and even then only if you set:

  max_wal_senders=0
  wal_level=minimal

This is not expected to be very useful on its own, but later proposed
patches will make greater use of direct I/O, and it'll be useful for
testing if developers on Macs can see the effects.

Reviewed-by: Andres Freund <andres@anarazel.de>
Discussion: https://postgr.es/m/CA%2BhUKG%2BADiyyHe0cun2wfT%2BSVnFVqNYPxoO6J9zcZkVO7%2BNGig%40mail.gmail.com
2021-07-19 11:01:01 +12:00
..
access Support direct I/O on macOS. 2021-07-19 11:01:01 +12:00
bootstrap Update copyright for 2021 2021-01-02 13:06:25 -05:00
catalog Forgotten catversion bump for 9e3c217bd9 2021-07-18 21:08:44 +03:00
commands Preserve firing-on state when cloning row triggers to partitions 2021-07-16 13:01:43 -04:00
common Adjust locations which have an incorrect copyright year 2021-06-04 12:19:50 +12:00
datatype Update copyright for 2021 2021-01-02 13:06:25 -05:00
executor Change the name of the Result Cache node to Memoize 2021-07-14 12:43:58 +12:00
fe_utils psql: Refine lexing of BEGIN...END blocks in CREATE FUNCTION statements 2021-04-16 12:20:23 +02:00
foreign Initial pgindent and pgperltidy run for v14. 2021-05-12 13:14:10 -04:00
jit Update copyright for 2021 2021-01-02 13:06:25 -05:00
lib Initial pgindent and pgperltidy run for v14. 2021-05-12 13:14:10 -04:00
libpq Refactor SASL code with a generic interface for its mechanisms 2021-07-07 10:55:15 +09:00
mb Fix incautious handling of possibly-miscoded strings in client code. 2021-06-07 14:15:25 -04:00
nodes Change the name of the Result Cache node to Memoize 2021-07-14 12:43:58 +12:00
optimizer Change the name of the Result Cache node to Memoize 2021-07-14 12:43:58 +12:00
parser Cleanup some aggregate code in the executor 2021-07-04 18:47:31 +12:00
partitioning Remove unused function parameter in get_qual_from_partbound 2021-07-14 09:52:04 -04:00
port Probe for preadv/pwritev in a more macOS-friendly way. 2021-07-12 19:17:35 -04:00
portability Fix another portability bug in recent pgbench commit. 2021-03-10 23:20:41 +13:00
postmaster Remove temporary files after backend crash 2021-03-18 17:38:28 +01:00
regex Improve memory management in regex compiler. 2021-02-26 13:52:10 -05:00
replication Advance old-segment horizon properly after slot invalidation 2021-07-16 12:07:30 -04:00
rewrite Adjust locations which have an incorrect copyright year 2021-06-04 12:19:50 +12:00
snowball Update snowball 2021-02-19 08:10:15 +01:00
statistics Extended statistics on expressions 2021-03-27 00:01:11 +01:00
storage Support direct I/O on macOS. 2021-07-19 11:01:01 +12:00
tcop Centralize the logic for protective copying of utility statements. 2021-06-18 11:22:58 -04:00
tsearch Don't leak compiled regex(es) when an ispell cache entry is dropped. 2021-03-18 22:22:47 -04:00
utils Rename debug_invalidate_system_caches_always to debug_discard_caches. 2021-07-13 15:01:01 -04:00
.gitignore Refactor dlopen() support 2018-09-06 11:33:04 +02:00
c.h Work around issues in MinGW-64's setjmp/longjmp support. 2021-03-15 12:34:17 -04:00
fmgr.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
funcapi.h Reconsider the handling of procedure OUT parameters. 2021-06-10 17:11:36 -04:00
getaddrinfo.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
getopt_long.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
Makefile Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
miscadmin.h Refactor CHECK_FOR_INTERRUPTS() to add flexibility. 2021-05-14 13:29:39 -04:00
pg_config.h.in Portability fixes for sigwait. 2021-07-15 12:34:31 +12:00
pg_config_ext.h.in Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
pg_config_manual.h Rename debug_invalidate_system_caches_always to debug_discard_caches. 2021-07-13 15:01:01 -04:00
pg_getopt.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
pg_trace.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
pgstat.h Fix issues in pg_stat_wal. 2021-05-19 11:38:34 +09:00
pgtar.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
pgtime.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
port.h Move bsearch_arg to src/port 2021-03-23 00:11:22 +01:00
postgres.h Mostly-cosmetic adjustments of TOAST-related macros. 2021-03-22 13:43:10 -04:00
postgres_ext.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
postgres_fe.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
rusagestub.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
windowapi.h Update copyright for 2021 2021-01-02 13:06:25 -05:00