From b44b2feb914d866250f2efb744b24de0ce8c161a Mon Sep 17 00:00:00 2001 From: Daniel Theophanes Date: Tue, 14 Nov 2017 08:53:56 -0800 Subject: database/sql: allow OpenConnector in a driver.Driver interface While driver.Connector was previously added to allow non-string connection arguments and access to the context, most users of the sql package will continue to rely on a string DSN. Allow drivers to implement a string DSN to Connector interface that both allows a single parsing of the string DSN and uses the Connector interface which passes available context to the driver dialer. Fixes #22713 Change-Id: Ia0b862262f4c4670effe2538d0d6d43733fea18d Reviewed-on: https://go-review.googlesource.com/77550 Reviewed-by: Ian Lance Taylor Run-TryBot: Ian Lance Taylor --- src/database/sql/fakedb_test.go | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/database/sql/fakedb_test.go') diff --git a/src/database/sql/fakedb_test.go b/src/database/sql/fakedb_test.go index 31e22a7a74..e795412de0 100644 --- a/src/database/sql/fakedb_test.go +++ b/src/database/sql/fakedb_test.go @@ -71,6 +71,16 @@ func (c *fakeConnector) Driver() driver.Driver { return fdriver } +type fakeDriverCtx struct { + fakeDriver +} + +var _ driver.DriverContext = &fakeDriverCtx{} + +func (cc *fakeDriverCtx) OpenConnector(name string) (driver.Connector, error) { + return &fakeConnector{name: name}, nil +} + type fakeDB struct { name string -- cgit v1.3-5-g9baa