2
0

try to improve readability of writable checking

Signed-off-by: Artemiy Ryabinkov <getlag@ya.ru>
This commit is contained in:
Artemiy Ryabinkov
2019-07-11 00:16:58 +03:00
parent 7d4215cb88
commit 75b4ba635c
+8 -4
View File
@@ -79,6 +79,10 @@ func (t TargetSessionType) isValid() error {
return errors.New("invalid value for target_session_attrs, expected \"any\" or \"read-write\"") return errors.New("invalid value for target_session_attrs, expected \"any\" or \"read-write\"")
} }
func (t TargetSessionType) writableRequired() bool {
return t == ReadWriteTargetSession
}
// ConnConfig contains all the options used to establish a connection. // ConnConfig contains all the options used to establish a connection.
type ConnConfig struct { type ConnConfig struct {
// Name of host to connect to. (e.g. localhost) // Name of host to connect to. (e.g. localhost)
@@ -436,7 +440,7 @@ func connect(config ConnConfig, connInfo *pgtype.ConnInfo) (c *Conn, err error)
continue continue
} }
err = c.writable() err = c.checkWritable()
if err != nil { if err != nil {
c.die(err) c.die(err)
@@ -470,8 +474,8 @@ func connect(config ConnConfig, connInfo *pgtype.ConnInfo) (c *Conn, err error)
return nil, errors.New(strings.Join(errmsgs, ";")) return nil, errors.New(strings.Join(errmsgs, ";"))
} }
func (c *Conn) writable() error { func (c *Conn) checkWritable() error {
if c.config.TargetSessionAttrs == "" || c.config.TargetSessionAttrs == AnyTargetSession { if !c.config.TargetSessionAttrs.writableRequired() {
return nil return nil
} }
@@ -485,7 +489,7 @@ func (c *Conn) writable() error {
switch st { switch st {
case "on": case "on":
return errors.New("writable connection disabled by server") return errors.New("writable transactions disabled by server")
case "off": case "off":
// If transaction_read_only = off, then connection is writable. // If transaction_read_only = off, then connection is writable.
return nil return nil