ParseEnvLibpq extracts PGAPPNAME
This commit is contained in:
@@ -442,6 +442,7 @@ func ParseDSN(s string) (ConnConfig, error) {
|
|||||||
// PGUSER
|
// PGUSER
|
||||||
// PGPASSWORD
|
// PGPASSWORD
|
||||||
// PGSSLMODE
|
// PGSSLMODE
|
||||||
|
// PGAPPNAME
|
||||||
//
|
//
|
||||||
// Important TLS Security Notes:
|
// Important TLS Security Notes:
|
||||||
// ParseEnvLibpq tries to match libpq behavior with regard to PGSSLMODE. This
|
// ParseEnvLibpq tries to match libpq behavior with regard to PGSSLMODE. This
|
||||||
@@ -484,6 +485,11 @@ func ParseEnvLibpq() (ConnConfig, error) {
|
|||||||
return cc, err
|
return cc, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cc.RuntimeParams = make(map[string]string)
|
||||||
|
if appname := os.Getenv("PGAPPNAME"); appname != "" {
|
||||||
|
cc.RuntimeParams["application_name"] = appname
|
||||||
|
}
|
||||||
|
|
||||||
return cc, nil
|
return cc, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+26
-1
@@ -533,7 +533,7 @@ func TestParseDSN(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestParseEnvLibpq(t *testing.T) {
|
func TestParseEnvLibpq(t *testing.T) {
|
||||||
pgEnvvars := []string{"PGHOST", "PGPORT", "PGDATABASE", "PGUSER", "PGPASSWORD"}
|
pgEnvvars := []string{"PGHOST", "PGPORT", "PGDATABASE", "PGUSER", "PGPASSWORD", "PGAPPNAME"}
|
||||||
|
|
||||||
savedEnv := make(map[string]string)
|
savedEnv := make(map[string]string)
|
||||||
for _, n := range pgEnvvars {
|
for _, n := range pgEnvvars {
|
||||||
@@ -560,6 +560,7 @@ func TestParseEnvLibpq(t *testing.T) {
|
|||||||
TLSConfig: &tls.Config{InsecureSkipVerify: true},
|
TLSConfig: &tls.Config{InsecureSkipVerify: true},
|
||||||
UseFallbackTLS: true,
|
UseFallbackTLS: true,
|
||||||
FallbackTLSConfig: nil,
|
FallbackTLSConfig: nil,
|
||||||
|
RuntimeParams: map[string]string{},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -580,6 +581,19 @@ func TestParseEnvLibpq(t *testing.T) {
|
|||||||
TLSConfig: &tls.Config{InsecureSkipVerify: true},
|
TLSConfig: &tls.Config{InsecureSkipVerify: true},
|
||||||
UseFallbackTLS: true,
|
UseFallbackTLS: true,
|
||||||
FallbackTLSConfig: nil,
|
FallbackTLSConfig: nil,
|
||||||
|
RuntimeParams: map[string]string{},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "application_name",
|
||||||
|
envvars: map[string]string{
|
||||||
|
"PGAPPNAME": "pgxtest",
|
||||||
|
},
|
||||||
|
config: pgx.ConnConfig{
|
||||||
|
TLSConfig: &tls.Config{InsecureSkipVerify: true},
|
||||||
|
UseFallbackTLS: true,
|
||||||
|
FallbackTLSConfig: nil,
|
||||||
|
RuntimeParams: map[string]string{"application_name": "pgxtest"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -590,6 +604,7 @@ func TestParseEnvLibpq(t *testing.T) {
|
|||||||
config: pgx.ConnConfig{
|
config: pgx.ConnConfig{
|
||||||
TLSConfig: nil,
|
TLSConfig: nil,
|
||||||
UseFallbackTLS: false,
|
UseFallbackTLS: false,
|
||||||
|
RuntimeParams: map[string]string{},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -601,6 +616,7 @@ func TestParseEnvLibpq(t *testing.T) {
|
|||||||
TLSConfig: nil,
|
TLSConfig: nil,
|
||||||
UseFallbackTLS: true,
|
UseFallbackTLS: true,
|
||||||
FallbackTLSConfig: &tls.Config{InsecureSkipVerify: true},
|
FallbackTLSConfig: &tls.Config{InsecureSkipVerify: true},
|
||||||
|
RuntimeParams: map[string]string{},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -612,6 +628,7 @@ func TestParseEnvLibpq(t *testing.T) {
|
|||||||
TLSConfig: &tls.Config{InsecureSkipVerify: true},
|
TLSConfig: &tls.Config{InsecureSkipVerify: true},
|
||||||
UseFallbackTLS: true,
|
UseFallbackTLS: true,
|
||||||
FallbackTLSConfig: nil,
|
FallbackTLSConfig: nil,
|
||||||
|
RuntimeParams: map[string]string{},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -622,6 +639,7 @@ func TestParseEnvLibpq(t *testing.T) {
|
|||||||
config: pgx.ConnConfig{
|
config: pgx.ConnConfig{
|
||||||
TLSConfig: &tls.Config{},
|
TLSConfig: &tls.Config{},
|
||||||
UseFallbackTLS: false,
|
UseFallbackTLS: false,
|
||||||
|
RuntimeParams: map[string]string{},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -632,6 +650,7 @@ func TestParseEnvLibpq(t *testing.T) {
|
|||||||
config: pgx.ConnConfig{
|
config: pgx.ConnConfig{
|
||||||
TLSConfig: &tls.Config{},
|
TLSConfig: &tls.Config{},
|
||||||
UseFallbackTLS: false,
|
UseFallbackTLS: false,
|
||||||
|
RuntimeParams: map[string]string{},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -642,6 +661,7 @@ func TestParseEnvLibpq(t *testing.T) {
|
|||||||
config: pgx.ConnConfig{
|
config: pgx.ConnConfig{
|
||||||
TLSConfig: &tls.Config{},
|
TLSConfig: &tls.Config{},
|
||||||
UseFallbackTLS: false,
|
UseFallbackTLS: false,
|
||||||
|
RuntimeParams: map[string]string{},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -656,6 +676,7 @@ func TestParseEnvLibpq(t *testing.T) {
|
|||||||
ServerName: "pgx.example",
|
ServerName: "pgx.example",
|
||||||
},
|
},
|
||||||
UseFallbackTLS: false,
|
UseFallbackTLS: false,
|
||||||
|
RuntimeParams: map[string]string{},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -697,6 +718,10 @@ func TestParseEnvLibpq(t *testing.T) {
|
|||||||
t.Errorf("%s: expected Password to be %v got %v", tt.name, tt.config.Password, config.Password)
|
t.Errorf("%s: expected Password to be %v got %v", tt.name, tt.config.Password, config.Password)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if !reflect.DeepEqual(config.RuntimeParams, tt.config.RuntimeParams) {
|
||||||
|
t.Errorf("%s: expected RuntimeParams to be %#v got %#v", tt.name, tt.config.RuntimeParams, config.RuntimeParams)
|
||||||
|
}
|
||||||
|
|
||||||
tlsTests := []struct {
|
tlsTests := []struct {
|
||||||
name string
|
name string
|
||||||
expected *tls.Config
|
expected *tls.Config
|
||||||
|
|||||||
Reference in New Issue
Block a user