• Tom Lane's avatar
    Extend the abilities of libpq's target_session_attrs parameter. · ee28cacf
    Tom Lane authored
    In addition to the existing options of "any" and "read-write", we
    now support "read-only", "primary", "standby", and "prefer-standby".
    "read-write" retains its previous meaning of "transactions are
    read-write by default", and "read-only" inverts that.  The other
    three modes test specifically for hot-standby status, which is not
    quite the same thing.  (Setting default_transaction_read_only on
    a primary server renders it read-only to this logic, but not a
    standby.)
    
    Furthermore, if talking to a v14 or later server, no extra network
    round trip is needed to detect the session's status; the GUC_REPORT
    variables delivered by the server are enough.  When talking to an
    older server, a SHOW or SELECT query is issued to detect session
    read-only-ness or server hot-standby state, as needed.
    
    Haribabu Kommi, Greg Nancarrow, Vignesh C, Tom Lane; reviewed at
    various times by Laurenz Albe, Takayuki Tsunakawa, Peter Smith.
    
    Discussion: https://postgr.es/m/CAF3+xM+8-ztOkaV9gHiJ3wfgENTq97QcjXQt+rbFQ6F7oNzt9A@mail.gmail.com
    ee28cacf
libpq-int.h 30.1 KB