pgsql: Parse pg_ident.conf when it's loaded, keeping it in memory in pa

From: Heikki Linnakangas <heikki(dot)linnakangas(at)iki(dot)fi>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Parse pg_ident.conf when it's loaded, keeping it in memory in pa
Date: 2012-09-21 14:59:00
Message-ID: E1TF4h2-0005g8-CB@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Parse pg_ident.conf when it's loaded, keeping it in memory in parsed format.

Similar changes were done to pg_hba.conf earlier already, this commit makes
pg_ident.conf to behave the same as pg_hba.conf.

This has two user-visible effects. First, if pg_ident.conf contains multiple
errors, the whole file is parsed at postmaster startup time and all the
errors are immediately reported. Before this patch, the file was parsed and
the errors were reported only when someone tries to connect using an
authentication method that uses the file, and the parsing stopped on first
error. Second, if you SIGHUP to reload the config files, and the new
pg_ident.conf file contains an error, the error is logged but the old file
stays in effect.

Also, regular expressions in pg_ident.conf are now compiled only once when
the file is loaded, rather than every time the a user is authenticated. That
should speed up authentication if you have a lot of regexps in the file.

Amit Kapila

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/7c45e3a3c682f855ecda7fd671969ee5e91929bf

Modified Files
--------------
src/backend/libpq/hba.c | 268 +++++++++++++++++++++++------------
src/backend/postmaster/postmaster.c | 15 ++-
src/backend/utils/init/postinit.c | 11 ++-
src/include/libpq/hba.h | 13 ++-
4 files changed, 213 insertions(+), 94 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message User Karl 2012-09-21 16:44:29 pgtcl - libpgtcl: Update the postgresql database schema comparator.
Previous Message Andres Freund 2012-09-21 14:41:12 Re: [COMMITTERS] pgsql: Properly set relpersistence for fake relcache entries.