Make consistent a couple of log messages when parsing HBA files
authorMichael Paquier <michael@paquier.xyz>
Fri, 5 Aug 2022 00:50:27 +0000 (09:50 +0900)
committerMichael Paquier <michael@paquier.xyz>
Fri, 5 Aug 2022 00:50:27 +0000 (09:50 +0900)
This commit adjusts two log messages:
- When a field in pg_ident.conf is not populated, report the line of the
configuration file in an error context message instead of the main
entry.
- When parsing pg_ident.conf and finding an invalid regexp, add some
information about the line of the configuration file involved within an
error context message.

Author: Julien Rouhaud
Discussion: https://postgr.es/m/20220223045959.35ipdsvbxcstrhya@jrouhaud

src/backend/libpq/hba.c

index 327a4b42af7a628c09f210fc250fab9ff30941fb..deee05c19795ab5e5d209b32db58b15c14b789fb 100644 (file)
@@ -900,8 +900,9 @@ do { \
        if (!field) { \
                ereport(elevel, \
                                (errcode(ERRCODE_CONFIG_FILE_ERROR), \
-                                errmsg("missing entry in file \"%s\" at end of line %d", \
-                                               IdentFileName, line_num))); \
+                                errmsg("missing entry at end of line"), \
+                                errcontext("line %d of configuration file \"%s\"", \
+                                                       line_num, IdentFileName))); \
                *err_msg = psprintf("missing entry at end of line"); \
                return NULL; \
        } \
@@ -2372,7 +2373,9 @@ parse_ident_line(TokenizedAuthLine *tok_line, int elevel)
                        ereport(elevel,
                                        (errcode(ERRCODE_INVALID_REGULAR_EXPRESSION),
                                         errmsg("invalid regular expression \"%s\": %s",
-                                                       parsedline->ident_user + 1, errstr)));
+                                                       parsedline->ident_user + 1, errstr),
+                                        errcontext("line %d of configuration file \"%s\"",
+                                                       line_num, IdentFileName)));
 
                        *err_msg = psprintf("invalid regular expression \"%s\": %s",
                                                                parsedline->ident_user + 1, errstr);