At postmaster startup, we determine the maximum number of open files we
can handle by trying to open a lot of file descriptors, up to
max_files_per_process. This is done in set_max_safe_fds(), and the
determined max_safe_fds value is inherited by child processes at fork().
However, with EXEC_BACKEND, ie. Windows, it's not inherited, so we
always run with the initial conservative default of 32.
An obvious fix would be to call set_max_safe_fds() in the child
processes, although I wonder if that's too expensive. Another option is
to pass down the value with save_restore_backend_variables().
Thoughts? Although this has apparently always been like this, no-one has
complained, so I'm thinking that we shouldn't backport this.
-- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com