Thank you everyone for your replies!

I did some research and apparently the is no need in any patch. As
David pointed out what I did could be easily done using \gset:

$ cat ~/.psqlrc 
select (case when pg_is_in_recovery() then 'r' else 'm' end) as mor

\set PROMPT1 '%p (%:mor:) =# '

Besides I figured out that replica promotion case could also be properly
handled without any patches. In case anyone is interested here is a
brief description of a solution.


export PATH="/home/eax/bin:$PATH"
alias psql='psql_wrapper'


#!/usr/bin/env python3

import subprocess
import sys

arg_string = ""
idx = 1
maxidx = len(sys.argv) - 1

while idx <= maxidx:
  arg_string += "'" + sys.argv[idx] + "' "
  idx += 1

cmd = """USER_ARGS=$'{}' psql {}""".format(
  arg_string.replace("'","\\'"), arg_string), shell = True)


\set PROMPT1 '%p <%`sh -c "psql $USER_ARGS -A -t -c $\'select case when 
pg_is_in_recovery() then \\\'replica\\\' else \\\'master\\\' end\'"`> =# '

Best regards,
Aleksander Alekseev

Sent via pgsql-hackers mailing list (
To make changes to your subscription:

Reply via email to