func TestParseURI(t *testing.T) { t.Parallel() tests := []struct { url string connParams pgx.ConnConfig }{ { url: "postgres://*****:*****@localhost:5432/mydb", connParams: pgx.ConnConfig{ User: "******", Password: "******", Host: "localhost", Port: 5432, Database: "mydb", }, }, { url: "postgresql://*****:*****@localhost:5432/mydb", connParams: pgx.ConnConfig{ User: "******", Password: "******", Host: "localhost", Port: 5432, Database: "mydb", }, }, { url: "postgres://jack@localhost:5432/mydb", connParams: pgx.ConnConfig{ User: "******", Host: "localhost", Port: 5432, Database: "mydb", }, }, { url: "postgres://jack@localhost/mydb", connParams: pgx.ConnConfig{ User: "******", Host: "localhost", Database: "mydb", }, }, } for i, tt := range tests { connParams, err := pgx.ParseURI(tt.url) if err != nil { t.Errorf("%d. Unexpected error from pgx.ParseURL(%q) => %v", i, tt.url, err) continue } if !reflect.DeepEqual(connParams, tt.connParams) { t.Errorf("%d. expected %#v got %#v", i, tt.connParams, connParams) } } }
func (d *Driver) Open(name string) (driver.Conn, error) { if d.Pool != nil { conn, err := d.Pool.Acquire() if err != nil { return nil, err } return &Conn{conn: conn, pool: d.Pool}, nil } connConfig, err := pgx.ParseURI(name) if err != nil { return nil, err } conn, err := pgx.Connect(connConfig) if err != nil { return nil, err } c := &Conn{conn: conn} return c, nil }