mirror of https://github.com/VinGarcia/ksql.git
Add kpgx.New()
This new package kpgx was created so that in the future we can make it a separate module. This will be important in order to prevent users from having to import all the backend libraries even when they might only be using one of them.pull/13/head
parent
d280eb1eb1
commit
45cb57cfa8
|
@ -0,0 +1,33 @@
|
|||
package kpgx
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/jackc/pgx/v4/pgxpool"
|
||||
"github.com/vingarcia/ksql"
|
||||
)
|
||||
|
||||
// New instantiates a new ksql.Client using pgx as the backend driver
|
||||
func New(
|
||||
ctx context.Context,
|
||||
connectionString string,
|
||||
config ksql.Config,
|
||||
) (db ksql.DB, err error) {
|
||||
pgxConf, err := pgxpool.ParseConfig(connectionString)
|
||||
if err != nil {
|
||||
return ksql.DB{}, err
|
||||
}
|
||||
|
||||
pgxConf.MaxConns = int32(config.MaxOpenConns)
|
||||
|
||||
pool, err := pgxpool.ConnectConfig(ctx, pgxConf)
|
||||
if err != nil {
|
||||
return ksql.DB{}, err
|
||||
}
|
||||
if err = pool.Ping(ctx); err != nil {
|
||||
return ksql.DB{}, err
|
||||
}
|
||||
|
||||
db, err = ksql.NewWithAdapter(ksql.NewPGXAdapter(pool), "postgres")
|
||||
return db, err
|
||||
}
|
6
ksql.go
6
ksql.go
|
@ -99,8 +99,10 @@ func New(
|
|||
return NewWithAdapter(SQLAdapter{db}, dbDriver)
|
||||
}
|
||||
|
||||
// NewWithPGX instantiates a new KissSQL client using the pgx
|
||||
// NewWithPGX instantiates a new ksql client using the pgx
|
||||
// library in the backend
|
||||
//
|
||||
// deprecated: use kpgx.New() instead
|
||||
func NewWithPGX(
|
||||
ctx context.Context,
|
||||
connectionString string,
|
||||
|
@ -121,7 +123,7 @@ func NewWithPGX(
|
|||
return DB{}, err
|
||||
}
|
||||
|
||||
db, err = NewWithAdapter(PGXAdapter{pool}, "postgres")
|
||||
db, err = NewWithAdapter(NewPGXAdapter(pool), "postgres")
|
||||
return db, err
|
||||
}
|
||||
|
||||
|
|
|
@ -14,6 +14,13 @@ type PGXAdapter struct {
|
|||
db *pgxpool.Pool
|
||||
}
|
||||
|
||||
// NewPGXAdapter instantiates a new pgx adapter
|
||||
func NewPGXAdapter(db *pgxpool.Pool) PGXAdapter {
|
||||
return PGXAdapter{
|
||||
db: db,
|
||||
}
|
||||
}
|
||||
|
||||
var _ DBAdapter = PGXAdapter{}
|
||||
|
||||
// ExecContext implements the DBAdapter interface
|
||||
|
|
Loading…
Reference in New Issue