pgsql: Refactor regular expression handling in hba.c - Mailing list pgsql-committers

From Michael Paquier
Subject pgsql: Refactor regular expression handling in hba.c
Date
Msg-id E1okxef-002zdq-36@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Refactor regular expression handling in hba.c

AuthToken gains a regular expression, and IdentLine is changed so as it
uses an AuthToken rather than tracking separately the ident user string
used for the regex compilation and its generated regex_t.  In the case
of pg_ident.conf, a set of AuthTokens is built in the pre-parsing phase
of the file, and an extra regular expression is compiled when building
the list of IdentLines, after checking the sanity of the fields in a
pre-parsed entry.

The logic in charge of computing and executing regular expressions is
now done in a new set of routines called respectively
regcomp_auth_token() and regexec_auth_token() that are wrappers around
pg_regcomp() and pg_regexec(), working on AuthTokens.  While on it, this
patch adds a routine able to free an AuthToken, free_auth_token(), to
simplify a bit the logic around the requirement of using a specific free
routine for computed regular expressions.  Note that there are no
functional or behavior changes introduced by this commit.

The goal of this patch is to ease the use of regular expressions with
more items of pg_hba.conf (user list, database list, potentially
hostnames) where AuthTokens are used extensively.  This will be tackled
later in a separate patch.

Author: Bertrand Drouvot, Michael Paquier
Discussion: https://postgr.es/m/fff0d7c1-8ad4-76a1-9db3-0ab6ec338bf7@amazon.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/fc579e11c6b8400f8d4ea2438c72bde006774370

Modified Files
--------------
src/backend/libpq/hba.c          | 160 +++++++++++++++++++++++++--------------
src/backend/utils/adt/hbafuncs.c |   2 +-
src/include/libpq/hba.h          |  28 +++----
3 files changed, 119 insertions(+), 71 deletions(-)


pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: pgsql: Fix confusion about havingQual vs hasHavingQual in planner.
Next
From: Michael Paquier
Date:
Subject: pgsql: Fix typos in logical/launcher.c