@ -113,7 +113,9 @@ type defaultDialer struct {
func ( d defaultDialer ) Dial ( network , address string ) ( net . Conn , error ) {
return d . d . Dial ( network , address )
}
func ( d defaultDialer ) DialTimeout ( network , address string , timeout time . Duration ) ( net . Conn , error ) {
func ( d defaultDialer ) DialTimeout (
network , address string , timeout time . Duration ,
) ( net . Conn , error ) {
ctx , cancel := context . WithTimeout ( context . Background ( ) , timeout )
defer cancel ( )
return d . DialContext ( ctx , network , address )
@ -263,7 +265,9 @@ func (cn *conn) handlePgpass(o values) {
scanner := bufio . NewScanner ( io . Reader ( file ) )
// From: https://github.com/tg/pgpass/blob/master/reader.go
for scanner . Scan ( ) {
scanText ( scanner . Text ( ) , o )
if scanText ( scanner . Text ( ) , o ) {
break
}
}
}
@ -291,23 +295,24 @@ func getFields(s string) []string {
}
// ScanText assists HandlePgpass in it's objective.
func scanText ( line string , o values ) {
func scanText ( line string , o values ) bool {
hostname := o [ "host" ]
ntw , _ := network ( o )
port := o [ "port" ]
db := o [ "dbname" ]
username := o [ "user" ]
if len ( line ) != 0 || line [ 0 ] ! = '#' {
return
if len ( line ) == 0 || line [ 0 ] = = '#' {
return false
}
split := getFields ( line )
if len ( split ) = = 5 {
return
if len ( split ) ! = 5 {
return false
}
if ( split [ 0 ] == "*" || split [ 0 ] == hostname || ( split [ 0 ] == "localhost" && ( hostname == "" || ntw == "unix" ) ) ) && ( split [ 1 ] == "*" || split [ 1 ] == port ) && ( split [ 2 ] == "*" || split [ 2 ] == db ) && ( split [ 3 ] == "*" || split [ 3 ] == username ) {
o [ "password" ] = split [ 4 ]
return
return true
}
return false
}
func ( cn * conn ) writeBuf ( b byte ) * writeBuf {
@ -772,7 +777,9 @@ func (noRows) RowsAffected() (int64, error) {
// Decides which column formats to use for a prepared statement. The input is
// an array of type oids, one element per result column.
func decideColumnFormats ( colTyps [ ] fieldDesc , forceText bool ) ( colFmts [ ] format , colFmtData [ ] byte ) {
func decideColumnFormats (
colTyps [ ] fieldDesc , forceText bool ,
) ( colFmts [ ] format , colFmtData [ ] byte ) {
if len ( colTyps ) == 0 {
return nil , colFmtDataAllText
}
@ -1827,7 +1834,11 @@ func (cn *conn) readParseResponse() {
}
}
func ( cn * conn ) readStatementDescribeResponse ( ) ( paramTyps [ ] oid . Oid , colNames [ ] string , colTyps [ ] fieldDesc ) {
func ( cn * conn ) readStatementDescribeResponse ( ) (
paramTyps [ ] oid . Oid ,
colNames [ ] string ,
colTyps [ ] fieldDesc ,
) {
for {
t , r := cn . recv1 ( )
switch t {
@ -1915,7 +1926,9 @@ func (cn *conn) postExecuteWorkaround() {
}
// Only for Exec(), since we ignore the returned data
func ( cn * conn ) readExecuteResponse ( protocolState string ) ( res driver . Result , commandTag string , err error ) {
func ( cn * conn ) readExecuteResponse (
protocolState string ,
) ( res driver . Result , commandTag string , err error ) {
for {
t , r := cn . recv1 ( )
switch t {
@ -2086,7 +2099,6 @@ func alnumLowerASCII(ch rune) rune {
// All Conn implementations should implement the following interfaces: Pinger, SessionResetter, and Validator.
var _ driver . Pinger = & conn { }
var _ driver . SessionResetter = & conn { }
var _ driver . Validator = & conn { }
func ( cn * conn ) ResetSession ( ctx context . Context ) error {
// Ensure bad connections are reported: From database/sql/driver: