Thread

  1. Re: Feature: Use DNS SRV records for connecting

    Zsolt Parragi <zsolt.parragi@percona.com> — 2026-05-12T21:05:45Z

    Hello!
    
    Shouldn't srvhost be freed in freePGconn?
    
    + /*
    + * If srvhost is set, validate mutual exclusivity with host/hostaddr and
    + * then resolve _postgresql._tcp.<srvhost> SRV records, populating
    + * conn->pghost and conn->pgport from the sorted results.  This must
    + * happen before the host-array allocation below.
    + */
    + if (conn->srvhost != NULL && conn->srvhost[0] != '\0')
    
    Shouldn't this also cover port? The current behavior with it seems inconsistent.
    
    > The resolved host list is sorted per RFC 2782 and injected into the
    > existing multi-host machinery before connhost[] is built, so
    > target_session_attrs, load_balance_hosts, and failover work on the
    > expanded list without any changes to PQconnectPoll.
    
    Doesn't RFC 2782 specifies a weighted random selection? The current
    code seems to be deterministically sorted by weight.
    RFC also says that weight=0 should be specially handled, it provides a
    detailed algorithm about the random selection method.