Skip to content

Commit 354fa07

Browse files
authored
Merge pull request #1552 from vladDotH/master
Query service implementations for database/sql interfaces
2 parents 9a4b4f8 + 46b1007 commit 354fa07

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+1709
-1328
lines changed

.github/workflows/tests.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ jobs:
133133
YDB_CONNECTION_STRING_SECURE: grpcs://localhost:2135/local
134134
YDB_SSL_ROOT_CERTIFICATES_FILE: /tmp/ydb_certs/ca.pem
135135
YDB_SESSIONS_SHUTDOWN_URLS: http://localhost:8765/actors/kqp_proxy?force_shutdown=all
136+
YDB_DATABASE_SQL_OVER_QUERY_SERVICE: 1
136137
HIDE_APPLICATION_OUTPUT: 1
137138
steps:
138139
- name: Checkout code

driver.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import (
1414
"github.com/ydb-platform/ydb-go-sdk/v3/discovery"
1515
"github.com/ydb-platform/ydb-go-sdk/v3/internal/balancer"
1616
"github.com/ydb-platform/ydb-go-sdk/v3/internal/conn"
17-
"github.com/ydb-platform/ydb-go-sdk/v3/internal/connector"
1817
internalCoordination "github.com/ydb-platform/ydb-go-sdk/v3/internal/coordination"
1918
coordinationConfig "github.com/ydb-platform/ydb-go-sdk/v3/internal/coordination/config"
2019
"github.com/ydb-platform/ydb-go-sdk/v3/internal/credentials"
@@ -37,6 +36,7 @@ import (
3736
"github.com/ydb-platform/ydb-go-sdk/v3/internal/topic/topicclientinternal"
3837
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xcontext"
3938
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xerrors"
39+
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql"
4040
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsync"
4141
"github.com/ydb-platform/ydb-go-sdk/v3/log"
4242
"github.com/ydb-platform/ydb-go-sdk/v3/operation"
@@ -93,7 +93,7 @@ type (
9393
topic *xsync.Once[*topicclientinternal.Client]
9494
topicOptions []topicoptions.TopicOption
9595

96-
databaseSQLOptions []connector.Option
96+
databaseSQLOptions []xsql.Option
9797

9898
pool *conn.Pool
9999

dsn.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ import (
99
"github.com/ydb-platform/ydb-go-sdk/v3/balancers"
1010
"github.com/ydb-platform/ydb-go-sdk/v3/credentials"
1111
"github.com/ydb-platform/ydb-go-sdk/v3/internal/bind"
12-
"github.com/ydb-platform/ydb-go-sdk/v3/internal/connector"
1312
"github.com/ydb-platform/ydb-go-sdk/v3/internal/dsn"
14-
tableSql "github.com/ydb-platform/ydb-go-sdk/v3/internal/table/conn"
1513
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xerrors"
14+
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql"
15+
tableSql "github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/table/conn"
1616
)
1717

1818
const tablePathPrefixTransformer = "table_path_prefix"
@@ -64,41 +64,41 @@ func parseConnectionString(dataSourceName string) (opts []Option, _ error) {
6464
if mode == tableSql.UnknownQueryMode {
6565
return nil, xerrors.WithStackTrace(fmt.Errorf("unknown query mode: %s", queryMode))
6666
}
67-
opts = append(opts, withConnectorOptions(connector.WithDefaultQueryMode(mode)))
67+
opts = append(opts, withConnectorOptions(xsql.WithDefaultQueryMode(mode)))
6868
} else if queryMode := info.Params.Get("query_mode"); queryMode != "" {
6969
mode := tableSql.QueryModeFromString(queryMode)
7070
if mode == tableSql.UnknownQueryMode {
7171
return nil, xerrors.WithStackTrace(fmt.Errorf("unknown query mode: %s", queryMode))
7272
}
73-
opts = append(opts, withConnectorOptions(connector.WithDefaultQueryMode(mode)))
73+
opts = append(opts, withConnectorOptions(xsql.WithDefaultQueryMode(mode)))
7474
}
7575
if fakeTx := info.Params.Get("go_fake_tx"); fakeTx != "" {
7676
for _, queryMode := range strings.Split(fakeTx, ",") {
7777
mode := tableSql.QueryModeFromString(queryMode)
7878
if mode == tableSql.UnknownQueryMode {
7979
return nil, xerrors.WithStackTrace(fmt.Errorf("unknown query mode: %s", queryMode))
8080
}
81-
opts = append(opts, withConnectorOptions(connector.WithFakeTx(mode)))
81+
opts = append(opts, withConnectorOptions(xsql.WithFakeTx(mode)))
8282
}
8383
}
8484
if info.Params.Has("go_query_bind") {
85-
var binders []connector.Option
85+
var binders []xsql.Option
8686
queryTransformers := strings.Split(info.Params.Get("go_query_bind"), ",")
8787
for _, transformer := range queryTransformers {
8888
switch transformer {
8989
case "declare":
90-
binders = append(binders, connector.WithQueryBind(bind.AutoDeclare{}))
90+
binders = append(binders, xsql.WithQueryBind(bind.AutoDeclare{}))
9191
case "positional":
92-
binders = append(binders, connector.WithQueryBind(bind.PositionalArgs{}))
92+
binders = append(binders, xsql.WithQueryBind(bind.PositionalArgs{}))
9393
case "numeric":
94-
binders = append(binders, connector.WithQueryBind(bind.NumericArgs{}))
94+
binders = append(binders, xsql.WithQueryBind(bind.NumericArgs{}))
9595
default:
9696
if strings.HasPrefix(transformer, tablePathPrefixTransformer) {
9797
prefix, err := extractTablePathPrefixFromBinderName(transformer)
9898
if err != nil {
9999
return nil, xerrors.WithStackTrace(err)
100100
}
101-
binders = append(binders, connector.WithQueryBind(bind.TablePathPrefix(prefix)))
101+
binders = append(binders, xsql.WithQueryBind(bind.TablePathPrefix(prefix)))
102102
} else {
103103
return nil, xerrors.WithStackTrace(
104104
fmt.Errorf("unknown query rewriter: %s", transformer),

dsn_test.go

Lines changed: 38 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@ import (
88

99
"github.com/ydb-platform/ydb-go-sdk/v3/config"
1010
"github.com/ydb-platform/ydb-go-sdk/v3/internal/bind"
11-
"github.com/ydb-platform/ydb-go-sdk/v3/internal/connector"
12-
querySql "github.com/ydb-platform/ydb-go-sdk/v3/internal/query/conn"
13-
tableSql "github.com/ydb-platform/ydb-go-sdk/v3/internal/table/conn"
11+
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql"
12+
conn2 "github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/query/conn"
13+
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql/table/conn"
1414
)
1515

1616
func TestParse(t *testing.T) {
17-
newConnector := func(opts ...connector.Option) *connector.Connector {
18-
c := &connector.Connector{}
17+
newConnector := func(opts ...xsql.Option) *xsql.Connector {
18+
c := &xsql.Connector{}
1919
for _, opt := range opts {
2020
if opt != nil {
2121
if err := opt.Apply(c); err != nil {
@@ -26,11 +26,11 @@ func TestParse(t *testing.T) {
2626

2727
return c
2828
}
29-
newTableConn := func(opts ...tableSql.Option) *tableSql.Conn {
30-
return tableSql.New(context.Background(), nil, nil, opts...)
29+
newTableConn := func(opts ...conn.Option) *conn.Conn {
30+
return conn.New(context.Background(), nil, nil, opts...)
3131
}
32-
newQueryConn := func(opts ...querySql.Option) *querySql.Conn {
33-
return querySql.New(context.Background(), nil, nil, opts...)
32+
newQueryConn := func(opts ...conn2.Option) *conn2.Conn {
33+
return conn2.New(context.Background(), nil, nil, opts...)
3434
}
3535
compareConfigs := func(t *testing.T, lhs, rhs *config.Config) {
3636
require.Equal(t, lhs.Secure(), rhs.Secure())
@@ -40,7 +40,7 @@ func TestParse(t *testing.T) {
4040
for _, tt := range []struct {
4141
dsn string
4242
opts []config.Option
43-
connectorOpts []connector.Option
43+
connectorOpts []xsql.Option
4444
err error
4545
}{
4646
{
@@ -70,8 +70,8 @@ func TestParse(t *testing.T) {
7070
config.WithEndpoint("localhost:2135"),
7171
config.WithDatabase("/local"),
7272
},
73-
connectorOpts: []connector.Option{
74-
connector.WithDefaultQueryMode(tableSql.ScriptingQueryMode),
73+
connectorOpts: []xsql.Option{
74+
xsql.WithDefaultQueryMode(conn.ScriptingQueryMode),
7575
},
7676
err: nil,
7777
},
@@ -82,9 +82,9 @@ func TestParse(t *testing.T) {
8282
config.WithEndpoint("localhost:2135"),
8383
config.WithDatabase("/local"),
8484
},
85-
connectorOpts: []connector.Option{
86-
connector.WithDefaultQueryMode(tableSql.ScriptingQueryMode),
87-
connector.WithQueryBind(bind.TablePathPrefix("path/to/tables")),
85+
connectorOpts: []xsql.Option{
86+
xsql.WithDefaultQueryMode(conn.ScriptingQueryMode),
87+
xsql.WithQueryBind(bind.TablePathPrefix("path/to/tables")),
8888
},
8989
err: nil,
9090
},
@@ -95,10 +95,10 @@ func TestParse(t *testing.T) {
9595
config.WithEndpoint("localhost:2135"),
9696
config.WithDatabase("/local"),
9797
},
98-
connectorOpts: []connector.Option{
99-
connector.WithDefaultQueryMode(tableSql.ScriptingQueryMode),
100-
connector.WithQueryBind(bind.TablePathPrefix("path/to/tables")),
101-
connector.WithQueryBind(bind.NumericArgs{}),
98+
connectorOpts: []xsql.Option{
99+
xsql.WithDefaultQueryMode(conn.ScriptingQueryMode),
100+
xsql.WithQueryBind(bind.TablePathPrefix("path/to/tables")),
101+
xsql.WithQueryBind(bind.NumericArgs{}),
102102
},
103103
err: nil,
104104
},
@@ -109,10 +109,10 @@ func TestParse(t *testing.T) {
109109
config.WithEndpoint("localhost:2135"),
110110
config.WithDatabase("/local"),
111111
},
112-
connectorOpts: []connector.Option{
113-
connector.WithDefaultQueryMode(tableSql.ScriptingQueryMode),
114-
connector.WithQueryBind(bind.TablePathPrefix("path/to/tables")),
115-
connector.WithQueryBind(bind.PositionalArgs{}),
112+
connectorOpts: []xsql.Option{
113+
xsql.WithDefaultQueryMode(conn.ScriptingQueryMode),
114+
xsql.WithQueryBind(bind.TablePathPrefix("path/to/tables")),
115+
xsql.WithQueryBind(bind.PositionalArgs{}),
116116
},
117117
err: nil,
118118
},
@@ -123,10 +123,10 @@ func TestParse(t *testing.T) {
123123
config.WithEndpoint("localhost:2135"),
124124
config.WithDatabase("/local"),
125125
},
126-
connectorOpts: []connector.Option{
127-
connector.WithDefaultQueryMode(tableSql.ScriptingQueryMode),
128-
connector.WithQueryBind(bind.TablePathPrefix("path/to/tables")),
129-
connector.WithQueryBind(bind.AutoDeclare{}),
126+
connectorOpts: []xsql.Option{
127+
xsql.WithDefaultQueryMode(conn.ScriptingQueryMode),
128+
xsql.WithQueryBind(bind.TablePathPrefix("path/to/tables")),
129+
xsql.WithQueryBind(bind.AutoDeclare{}),
130130
},
131131
err: nil,
132132
},
@@ -137,9 +137,9 @@ func TestParse(t *testing.T) {
137137
config.WithEndpoint("localhost:2135"),
138138
config.WithDatabase("/local"),
139139
},
140-
connectorOpts: []connector.Option{
141-
connector.WithDefaultQueryMode(tableSql.ScriptingQueryMode),
142-
connector.WithQueryBind(bind.TablePathPrefix("path/to/tables")),
140+
connectorOpts: []xsql.Option{
141+
xsql.WithDefaultQueryMode(conn.ScriptingQueryMode),
142+
xsql.WithQueryBind(bind.TablePathPrefix("path/to/tables")),
143143
},
144144
err: nil,
145145
},
@@ -150,11 +150,11 @@ func TestParse(t *testing.T) {
150150
config.WithEndpoint("localhost:2135"),
151151
config.WithDatabase("/local"),
152152
},
153-
connectorOpts: []connector.Option{
154-
connector.WithDefaultQueryMode(tableSql.ScriptingQueryMode),
155-
connector.WithQueryBind(bind.TablePathPrefix("path/to/tables")),
156-
connector.WithQueryBind(bind.PositionalArgs{}),
157-
connector.WithQueryBind(bind.AutoDeclare{}),
153+
connectorOpts: []xsql.Option{
154+
xsql.WithDefaultQueryMode(conn.ScriptingQueryMode),
155+
xsql.WithQueryBind(bind.TablePathPrefix("path/to/tables")),
156+
xsql.WithQueryBind(bind.PositionalArgs{}),
157+
xsql.WithQueryBind(bind.AutoDeclare{}),
158158
},
159159
err: nil,
160160
},
@@ -165,9 +165,9 @@ func TestParse(t *testing.T) {
165165
config.WithEndpoint("localhost:2135"),
166166
config.WithDatabase("/local"),
167167
},
168-
connectorOpts: []connector.Option{
169-
connector.WithFakeTx(tableSql.ScriptingQueryMode),
170-
connector.WithFakeTx(tableSql.SchemeQueryMode),
168+
connectorOpts: []xsql.Option{
169+
xsql.WithFakeTx(conn.ScriptingQueryMode),
170+
xsql.WithFakeTx(conn.SchemeQueryMode),
171171
},
172172
err: nil,
173173
},

internal/query/conn/conn.go

Lines changed: 0 additions & 133 deletions
This file was deleted.

internal/query/conn/errors.go

Lines changed: 0 additions & 5 deletions
This file was deleted.

0 commit comments

Comments
 (0)