2
0

ParseURI extracts run-time parameters

refs #99
This commit is contained in:
Jack Christensen
2015-10-16 15:37:49 -05:00
parent 1fb63a4b41
commit 5b0550c1cb
2 changed files with 37 additions and 0 deletions
+14
View File
@@ -364,6 +364,20 @@ func ParseURI(uri string) (ConnConfig, error) {
return cp, err 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 return cp, nil
} }
+23
View File
@@ -311,6 +311,7 @@ func TestParseURI(t *testing.T) {
}, },
UseFallbackTLS: true, UseFallbackTLS: true,
FallbackTLSConfig: nil, FallbackTLSConfig: nil,
RuntimeParams: map[string]string{},
}, },
}, },
{ {
@@ -324,6 +325,7 @@ func TestParseURI(t *testing.T) {
TLSConfig: nil, TLSConfig: nil,
UseFallbackTLS: false, UseFallbackTLS: false,
FallbackTLSConfig: nil, FallbackTLSConfig: nil,
RuntimeParams: map[string]string{},
}, },
}, },
{ {
@@ -339,6 +341,7 @@ func TestParseURI(t *testing.T) {
}, },
UseFallbackTLS: true, UseFallbackTLS: true,
FallbackTLSConfig: nil, FallbackTLSConfig: nil,
RuntimeParams: map[string]string{},
}, },
}, },
{ {
@@ -354,6 +357,7 @@ func TestParseURI(t *testing.T) {
}, },
UseFallbackTLS: true, UseFallbackTLS: true,
FallbackTLSConfig: nil, FallbackTLSConfig: nil,
RuntimeParams: map[string]string{},
}, },
}, },
{ {
@@ -368,6 +372,7 @@ func TestParseURI(t *testing.T) {
}, },
UseFallbackTLS: true, UseFallbackTLS: true,
FallbackTLSConfig: nil, FallbackTLSConfig: nil,
RuntimeParams: map[string]string{},
}, },
}, },
{ {
@@ -381,6 +386,24 @@ func TestParseURI(t *testing.T) {
}, },
UseFallbackTLS: true, UseFallbackTLS: true,
FallbackTLSConfig: nil, 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",
},
}, },
}, },
} }