git.postgresql.org Git - postgresql.git/commitdiff

git projects / postgresql.git / commitdiff
? search:
summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 33a3776)
Modify query on pg_hba_file_rules to check for errors in regression tests
2022年3月29日 00:06:51 +0000 (09:06 +0900)
2022年3月29日 00:06:51 +0000 (09:06 +0900)
The regression tests include a query to check the execution path of
pg_hba_file_rules, but it has never checked that a given cluster has
correct contents in pg_hba.conf. This commit extends the query of
pg_hba_file_rules to report any errors if anything bad is found. For
EXEC_BACKEND builds, any connection attempt would fail when loading
pg_hba.conf if any incorrect content is found when parsed, so a failure
would be detected before even running this query. However, this can
become handy for clusters where pg_hba.conf can be reloaded, where new
connection attempts are not subject to a fresh loading of pg_hba.conf.

Author: Julien Rouhaud, based on an idea from me
Discussion: https://postgr.es/m/YkFhpydhyeNNo3Xl@paquier.xyz


diff --git a/src/test/regress/expected/sysviews.out b/src/test/regress/expected/sysviews.out
index 442eeb1e3fe7779421c26a971d231def72597993..92b48502dd39d5eb84ec4619617906c570819714 100644 (file)
--- a/src/test/regress/expected/sysviews.out
+++ b/src/test/regress/expected/sysviews.out
@@ -48,11 +48,12 @@ select count(*) >= 0 as ok from pg_file_settings;
t
(1 row)
--- There will surely be at least one rule
-select count(*) > 0 as ok from pg_hba_file_rules;
- ok
-----
- t
+-- There will surely be at least one rule, with no errors.
+select count(*) > 0 as ok, count(*) FILTER (WHERE error IS NOT NULL) = 0 AS no_err
+ from pg_hba_file_rules;
+ ok | no_err
+----+--------
+ t | t
(1 row)
-- There will surely be at least one active lock
diff --git a/src/test/regress/sql/sysviews.sql b/src/test/regress/sql/sysviews.sql
index 4980f07be25c6041f7eb84c911f6c453c751b390..77e48ef7cccc4224dbc4f1fe44e98a31fb887164 100644 (file)
--- a/src/test/regress/sql/sysviews.sql
+++ b/src/test/regress/sql/sysviews.sql
@@ -25,8 +25,9 @@ select count(*) = 0 as ok from pg_cursors;
select count(*) >= 0 as ok from pg_file_settings;
--- There will surely be at least one rule
-select count(*) > 0 as ok from pg_hba_file_rules;
+-- There will surely be at least one rule, with no errors.
+select count(*) > 0 as ok, count(*) FILTER (WHERE error IS NOT NULL) = 0 AS no_err
+ from pg_hba_file_rules;
-- There will surely be at least one active lock
select count(*) > 0 as ok from pg_locks;
This is the main PostgreSQL git repository.
RSS Atom

AltStyle によって変換されたページ (->オリジナル) /