Merge pull request #1352 from concourse/pr/support-pq-host-port
pg: support host:port for backwards-compatibility
This commit is contained in:
		| @@ -3,6 +3,7 @@ package sql | |||||||
| import ( | import ( | ||||||
| 	"database/sql" | 	"database/sql" | ||||||
| 	"fmt" | 	"fmt" | ||||||
|  | 	"net" | ||||||
| 	"regexp" | 	"regexp" | ||||||
| 	"strconv" | 	"strconv" | ||||||
| 	"strings" | 	"strings" | ||||||
| @@ -116,12 +117,24 @@ func (p *Postgres) createDataSourceName() string { | |||||||
|  |  | ||||||
| 	addParam("connect_timeout", strconv.Itoa(p.ConnectionTimeout)) | 	addParam("connect_timeout", strconv.Itoa(p.ConnectionTimeout)) | ||||||
|  |  | ||||||
| 	if p.Host != "" { | 	// detect host:port for backwards-compatibility | ||||||
| 		addParam("host", dataSourceStr(p.Host)) | 	host, port, err := net.SplitHostPort(p.Host) | ||||||
|  | 	if err != nil { | ||||||
|  | 		// not host:port, probably unix socket or bare address | ||||||
|  |  | ||||||
|  | 		host = p.Host | ||||||
|  |  | ||||||
|  | 		if p.Port != 0 { | ||||||
|  | 			port = strconv.Itoa(int(p.Port)) | ||||||
|  | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	if p.Port != 0 { | 	if host != "" { | ||||||
| 		addParam("port", strconv.Itoa(int(p.Port))) | 		addParam("host", dataSourceStr(host)) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	if port != "" { | ||||||
|  | 		addParam("port", port) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	if p.User != "" { | 	if p.User != "" { | ||||||
|   | |||||||
| @@ -119,6 +119,13 @@ func TestCreateDataSourceName(t *testing.T) { | |||||||
| 			}, | 			}, | ||||||
| 			expected: "connect_timeout=0 host='coreos.com' sslmode='disable'", | 			expected: "connect_timeout=0 host='coreos.com' sslmode='disable'", | ||||||
| 		}, | 		}, | ||||||
|  | 		{ | ||||||
|  | 			description: "with tcp host:port", | ||||||
|  | 			input: &Postgres{ | ||||||
|  | 				Host: "coreos.com:6543", | ||||||
|  | 			}, | ||||||
|  | 			expected: "connect_timeout=0 host='coreos.com' port=6543 sslmode='verify-full'", | ||||||
|  | 		}, | ||||||
| 		{ | 		{ | ||||||
| 			description: "with tcp host and port", | 			description: "with tcp host and port", | ||||||
| 			input: &Postgres{ | 			input: &Postgres{ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user