mirror of https://github.com/jackc/pgx.git
parent
460acd7757
commit
d1a56c95d2
|
@ -12,6 +12,8 @@ import (
|
|||
|
||||
type ConnectionParameters struct {
|
||||
socket string // path to unix domain socket (e.g. /private/tmp/.s.PGSQL.5432)
|
||||
host string
|
||||
port uint16 // default: 5432
|
||||
database string
|
||||
user string
|
||||
password string
|
||||
|
@ -27,28 +29,29 @@ type Connection struct {
|
|||
txStatus byte
|
||||
}
|
||||
|
||||
// options:
|
||||
// socket: path to unix domain socket
|
||||
// host: TCP address
|
||||
// port:
|
||||
// database: name of database
|
||||
func Connect(paramaters ConnectionParameters) (c *Connection, err error) {
|
||||
func Connect(parameters ConnectionParameters) (c *Connection, err error) {
|
||||
c = new(Connection)
|
||||
|
||||
c.parameters = paramaters
|
||||
c.parameters = parameters
|
||||
if c.parameters.port == 0 {
|
||||
c.parameters.port = 5432
|
||||
}
|
||||
|
||||
if c.parameters.socket != "" {
|
||||
c.conn, err = net.Dial("unix", c.parameters.socket)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
} else if c.parameters.host != "" {
|
||||
c.conn, err = net.Dial("tcp", fmt.Sprintf("%s:%d", c.parameters.host, c.parameters.port))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
c.buf = make([]byte, 1024)
|
||||
c.runtimeParams = make(map[string]string)
|
||||
|
||||
// conn, err := net.Dial("tcp", "localhost:5432")
|
||||
|
||||
msg := newStartupMessage()
|
||||
msg.options["user"] = c.parameters.user
|
||||
if c.parameters.database != "" {
|
||||
|
|
|
@ -53,6 +53,18 @@ func TestConnect(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestConnectWithTcp(t *testing.T) {
|
||||
conn, err := Connect(ConnectionParameters{host: "127.0.0.1", user: "pgx_md5", password: "secret", database: "pgx_test"})
|
||||
if err != nil {
|
||||
t.Fatal("Unable to establish connection: " + err.Error())
|
||||
}
|
||||
|
||||
err = conn.Close()
|
||||
if err != nil {
|
||||
t.Fatal("Unable to close connection")
|
||||
}
|
||||
}
|
||||
|
||||
func TestConnectWithInvalidUser(t *testing.T) {
|
||||
_, err := Connect(ConnectionParameters{socket: "/private/tmp/.s.PGSQL.5432", user: "invalid_user", database: "pgx_test"})
|
||||
pgErr := err.(PgError)
|
||||
|
|
Loading…
Reference in New Issue