ParseURI extracts run-time parameters

refs #99
pull/111/head
Jack Christensen 2015-10-16 15:37:49 -05:00
parent 1fb63a4b41
commit 5b0550c1cb
2 changed files with 37 additions and 0 deletions

14
conn.go
View File

@ -364,6 +364,20 @@ func ParseURI(uri string) (ConnConfig, error) {
return cp, err
}
ignoreKeys := map[string]struct{}{
"sslmode": struct{}{},
}
cp.RuntimeParams = make(map[string]string)
for k, v := range url.Query() {
if _, ok := ignoreKeys[k]; ok {
continue
}
cp.RuntimeParams[k] = v[0]
}
return cp, nil
}

View File

@ -311,6 +311,7 @@ func TestParseURI(t *testing.T) {
},
UseFallbackTLS: true,
FallbackTLSConfig: nil,
RuntimeParams: map[string]string{},
},
},
{
@ -324,6 +325,7 @@ func TestParseURI(t *testing.T) {
TLSConfig: nil,
UseFallbackTLS: false,
FallbackTLSConfig: nil,
RuntimeParams: map[string]string{},
},
},
{
@ -339,6 +341,7 @@ func TestParseURI(t *testing.T) {
},
UseFallbackTLS: true,
FallbackTLSConfig: nil,
RuntimeParams: map[string]string{},
},
},
{
@ -354,6 +357,7 @@ func TestParseURI(t *testing.T) {
},
UseFallbackTLS: true,
FallbackTLSConfig: nil,
RuntimeParams: map[string]string{},
},
},
{
@ -368,6 +372,7 @@ func TestParseURI(t *testing.T) {
},
UseFallbackTLS: true,
FallbackTLSConfig: nil,
RuntimeParams: map[string]string{},
},
},
{
@ -381,6 +386,24 @@ func TestParseURI(t *testing.T) {
},
UseFallbackTLS: true,
FallbackTLSConfig: nil,
RuntimeParams: map[string]string{},
},
},
{
url: "postgres://jack@localhost/mydb?application_name=pgxtest&search_path=myschema",
connParams: pgx.ConnConfig{
User: "jack",
Host: "localhost",
Database: "mydb",
TLSConfig: &tls.Config{
InsecureSkipVerify: true,
},
UseFallbackTLS: true,
FallbackTLSConfig: nil,
RuntimeParams: map[string]string{
"application_name": "pgxtest",
"search_path": "myschema",
},
},
},
}