Re: fetch_search_path() and elog.c

Ferruccio Zamuner <nonsolosoft@diff.org>

From: Ferruccio Zamuner <nonsolosoft@diff.org>
To: Tom Lane <tgl@sss.pgh.pa.us>, pgsql-hackers@postgresql.org
Date: 2005-07-11T16:22:26Z
Lists: pgsql-hackers
Tom Lane wrote:

>Ferruccio Zamuner <nonsolosoft@diff.org> writes:
>  
>
>>I need to have in the log_line_prefix the search_path where the query 
>>has run.
>>So last week I've started to read elog.c and I was thinking about a 
>>small patch there using a new "%S" option.
>>    
>>
>
>There's no chance of that code working when not inside a transaction;
>which means that in most of the scenarios where you really want a log
>entry to be made, it will fail.
>
>			regards, tom lane
>  
>
Now I've found a simpler solution:

case 'S':
                    /* estrae il search_path */
              if (namespace_search_path != NULL)
                appendStringInfo(buf, "%s ", namespace_search_path);
              break;

It seems to work.

But I would like to understand why previous code was wrong.