@@ -11,7 +11,6 @@ import (
1111 "github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql"
1212 "github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/legacy"
1313 "github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/propose"
14- "github.com/ydb-platform/ydb-go-sdk/v3/internal/xsync"
1514 "github.com/ydb-platform/ydb-go-sdk/v3/table"
1615 "github.com/ydb-platform/ydb-go-sdk/v3/table/options"
1716 "github.com/ydb-platform/ydb-go-sdk/v3/trace"
@@ -32,31 +31,13 @@ func withConnectorOptions(opts ...ConnectorOption) Option {
3231 }
3332}
3433
35- type sqlDriver struct {
36- connectors xsync.Map [* xsql.Connector , * Driver ]
37- }
34+ type sqlDriver struct {}
3835
3936var (
4037 _ driver.Driver = & sqlDriver {}
4138 _ driver.DriverContext = & sqlDriver {}
4239)
4340
44- func (d * sqlDriver ) Close () error {
45- var errs []error
46- d .connectors .Range (func (c * xsql.Connector , _ * Driver ) bool {
47- if err := c .Close (); err != nil {
48- errs = append (errs , err )
49- }
50-
51- return true
52- })
53- if len (errs ) > 0 {
54- return xerrors .NewWithIssues ("ydb legacy driver close failed" , errs ... )
55- }
56-
57- return nil
58- }
59-
6041// Open returns a new Driver to the ydb.
6142func (d * sqlDriver ) Open (string ) (driver.Conn , error ) {
6243 return nil , xsql .ErrUnsupported
@@ -68,15 +49,16 @@ func (d *sqlDriver) OpenConnector(dataSourceName string) (driver.Connector, erro
6849 return nil , xerrors .WithStackTrace (fmt .Errorf ("failed to connect by data source name '%s': %w" , dataSourceName , err ))
6950 }
7051
71- return Connector (db , db .databaseSQLOptions ... )
72- }
73-
74- func (d * sqlDriver ) attach (c * xsql.Connector , parent * Driver ) {
75- d .connectors .Set (c , parent )
76- }
52+ c , err := Connector (db , append (db .databaseSQLOptions ,
53+ xsql .WithOnClose (func (connector * xsql.Connector ) {
54+ _ = db .Close (context .Background ())
55+ }),
56+ )... )
57+ if err != nil {
58+ return nil , xerrors .WithStackTrace (fmt .Errorf ("failed to create connector: %w" , err ))
59+ }
7760
78- func (d * sqlDriver ) detach (c * xsql.Connector ) {
79- d .connectors .Delete (c )
61+ return c , nil
8062}
8163
8264type QueryMode int
@@ -242,15 +224,13 @@ func Connector(parent *Driver, opts ...ConnectorOption) (SQLConnector, error) {
242224 parent .databaseSQLOptions ,
243225 opts ... ,
244226 ),
245- xsql .WithOnClose (d .detach ),
246227 xsql .WithTraceRetry (parent .config .TraceRetry ()),
247228 xsql .WithRetryBudget (parent .config .RetryBudget ()),
248229 )... ,
249230 )
250231 if err != nil {
251232 return nil , xerrors .WithStackTrace (err )
252233 }
253- d .attach (c , parent )
254234
255235 return c , nil
256236}
0 commit comments