mydb/adapter/postgresql/postgresql.go
2023-09-18 15:15:42 +08:00

31 lines
896 B
Go

package postgresql
import (
"database/sql"
"git.hexq.cn/tiglog/mydb"
"git.hexq.cn/tiglog/mydb/internal/sqladapter"
"git.hexq.cn/tiglog/mydb/internal/sqlbuilder"
)
// Adapter is the internal name of the adapter.
const Adapter = "postgresql"
var registeredAdapter = sqladapter.RegisterAdapter(Adapter, &database{})
// Open establishes a connection to the database server and returns a
// sqlbuilder.Session instance (which is compatible with mydb.Session).
func Open(connURL mydb.ConnectionURL) (mydb.Session, error) {
return registeredAdapter.OpenDSN(connURL)
}
// NewTx creates a sqlbuilder.Tx instance by wrapping a *sql.Tx value.
func NewTx(sqlTx *sql.Tx) (sqlbuilder.Tx, error) {
return registeredAdapter.NewTx(sqlTx)
}
// New creates a sqlbuilder.Sesion instance by wrapping a *sql.DB value.
func New(sqlDB *sql.DB) (mydb.Session, error) {
return registeredAdapter.New(sqlDB)
}