> On 8 Mar 2024, at 15:01, Bharath Rupireddy 
> <bharath.rupireddyforpostg...@gmail.com> wrote:

> So, to get backtraces of all functions at
> backtrace_functions_min_level level, one has to specify
> backtrace_functions = '*'; combining it with function names is not
> allowed. This looks cleaner.
> 
> postgres=# ALTER SYSTEM SET backtrace_functions = '*, 
> pg_create_restore_point';
> ERROR:  invalid value for parameter "backtrace_functions": "*,
> pg_create_restore_point"
> DETAIL:  Invalid character

If we want to be extra helpful here we could add something like the below to
give an errhint when a wildcard was found.  Also, the errdetail should read
like a full sentence so it should be slightly expanded anyways.

diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c
index ca621ea3ff..7bc655ecd2 100644
--- a/src/backend/utils/error/elog.c
+++ b/src/backend/utils/error/elog.c
@@ -2151,7 +2151,9 @@ check_backtrace_functions(char **newval, void **extra, 
GucSource source)
                                          ", \n\t");
        if (validlen != newvallen)
        {
-               GUC_check_errdetail("Invalid character");
+               GUC_check_errdetail("Invalid character in function name.");
+               if ((*newval)[validlen] == '*')
+                       GUC_check_errhint("For wildcard matching, use a single 
\"*\" without any other function names.");
                return false;
        }

--
Daniel Gustafsson



Reply via email to