diff --git a/sequel.go b/sequel.go index ffdb28c..0470a90 100644 --- a/sequel.go +++ b/sequel.go @@ -26,6 +26,7 @@ type DB struct { db *sqlx.DB clock clock.Clock doRebindModel bool + driverName string } type options struct { @@ -83,6 +84,7 @@ func New(dataSourceName string, opts ...Option) (*DB, error) { db: db, clock: options.Clock, doRebindModel: options.RebindModel, + driverName: options.DriverName, }, nil } @@ -141,6 +143,11 @@ func (d *DB) Close() error { return d.db.Close() } +// Driver returns the name of the driver used. +func (d *DB) Driver() string { + return d.driverName +} + // Rebind transforms a query from `?` to the DB driver's bind type. func (d *DB) Rebind(query string) string { return d.db.Rebind(query) diff --git a/sequel_test.go b/sequel_test.go index 66d9ca4..b67ccf1 100644 --- a/sequel_test.go +++ b/sequel_test.go @@ -841,3 +841,15 @@ func TestDB_Rebind(t *testing.T) { }) } } + +func TestDB_Driver(t *testing.T) { + db, err := New(postgresDataSource) + require.NoError(t, err) + assert.Equal(t, "pgx/v5", db.Driver()) + assert.NoError(t, db.Close()) + + db, err = New(postgresDataSource, WithDriver("pgx/v5")) + require.NoError(t, err) + assert.Equal(t, "pgx/v5", db.Driver()) + assert.NoError(t, db.Close()) +}