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
\gset
\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.
~/.bash_profile:
```
export PATH="/home/eax/bin:$PATH"
alias psql='psql_wrapper'
```
~/bin/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)
subprocess.call(cmd, shell = True)
```
~/.psqlrc:
```
\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