Skip to content

Commit 9b2748b

Browse files
committed
* Added query.WithPoolID() execute option
1 parent b958288 commit 9b2748b

File tree

8 files changed

+106
-59
lines changed

8 files changed

+106
-59
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
* Added `query.WithPoolID()` execute option
2+
13
## v3.85.1
24
* Added `spans.Retry` constructor of `trace.Retry`
35

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ require (
66
github.com/golang-jwt/jwt/v4 v4.4.1
77
github.com/google/uuid v1.6.0
88
github.com/jonboulle/clockwork v0.3.0
9-
github.com/ydb-platform/ydb-go-genproto v0.0.0-20240920120314-0fed943b0136
9+
github.com/ydb-platform/ydb-go-genproto v0.0.0-20241022174402-dd276c7f197b
1010
golang.org/x/net v0.23.0
1111
golang.org/x/sync v0.6.0
1212
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,8 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5
6565
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
6666
github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY=
6767
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
68-
github.com/ydb-platform/ydb-go-genproto v0.0.0-20240920120314-0fed943b0136 h1:MO32/Cba3XpNYWcoz3y13eHZG+RzDHmFPry3ren6BmE=
69-
github.com/ydb-platform/ydb-go-genproto v0.0.0-20240920120314-0fed943b0136/go.mod h1:Er+FePu1dNUieD+XTMDduGpQuCPssK5Q4BjF+IIXJ3I=
68+
github.com/ydb-platform/ydb-go-genproto v0.0.0-20241022174402-dd276c7f197b h1:8yiv/W+1xTdifJh1Stkck0gFJjys9kg0/r86Buljuss=
69+
github.com/ydb-platform/ydb-go-genproto v0.0.0-20241022174402-dd276c7f197b/go.mod h1:Er+FePu1dNUieD+XTMDduGpQuCPssK5Q4BjF+IIXJ3I=
7070
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
7171
go.uber.org/mock v0.4.0 h1:VcM4ZOtdbR4f6VXfiOpwpVJDL6lCReaZ6mw31wqh7KU=
7272
go.uber.org/mock v0.4.0/go.mod h1:a6FSlNadKUHUa9IP5Vyt1zh4fC7uAwxMutEAscFbkZc=

internal/query/execute_query.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ type executeSettings interface {
3030
Params() *params.Parameters
3131
CallOptions() []grpc.CallOption
3232
RetryOpts() []retry.Option
33+
PoolID() string
3334
}
3435

3536
type executeScriptConfig interface {
@@ -56,6 +57,7 @@ func executeQueryScriptRequest(a *allocator.Allocator, q string, cfg executeScri
5657
Parameters: cfg.Params().ToYDB(a),
5758
StatsMode: Ydb_Query.StatsMode(cfg.StatsMode()),
5859
ResultsTtl: durationpb.New(cfg.ResultsTTL()),
60+
PoolId: cfg.PoolID(),
5961
}
6062

6163
return request, cfg.CallOptions()
@@ -74,6 +76,7 @@ func executeQueryRequest(a *allocator.Allocator, sessionID, q string, cfg execut
7476
request.Parameters = cfg.Params().ToYDB(a)
7577
request.StatsMode = Ydb_Query.StatsMode(cfg.StatsMode())
7678
request.ConcurrentResultSets = false
79+
request.PoolId = cfg.PoolID()
7780

7881
return request, cfg.CallOptions()
7982
}

internal/query/options/execute.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ type (
3131
params params.Parameters
3232
execMode ExecMode
3333
statsMode StatsMode
34+
poolID string
3435
statsCallback func(queryStats stats.QueryStats)
3536
callOptions []grpc.CallOption
3637
txControl *tx.Control
@@ -49,6 +50,7 @@ type (
4950
// execute options
5051
callOptionsOption []grpc.CallOption
5152
txCommitOption struct{}
53+
poolID string
5254
parametersOption params.Parameters
5355
txControlOption tx.Control
5456
syntaxOption = Syntax
@@ -59,6 +61,10 @@ type (
5961
execModeOption = ExecMode
6062
)
6163

64+
func (poolID poolID) applyExecuteOption(s *executeSettings) {
65+
s.poolID = string(poolID)
66+
}
67+
6268
func (s *executeSettings) RetryOpts() []retry.Option {
6369
return s.retryOptions
6470
}
@@ -157,6 +163,10 @@ func (s *executeSettings) StatsMode() StatsMode {
157163
return s.statsMode
158164
}
159165

166+
func (s *executeSettings) PoolID() string {
167+
return s.poolID
168+
}
169+
160170
func (s *executeSettings) Params() *params.Parameters {
161171
if len(s.params) == 0 {
162172
return nil
@@ -176,12 +186,17 @@ var (
176186
_ Execute = StatsMode(0)
177187
_ Execute = txCommitOption{}
178188
_ Execute = (*txControlOption)(nil)
189+
_ Execute = poolID("")
179190
)
180191

181192
func WithCommit() txCommitOption {
182193
return txCommitOption{}
183194
}
184195

196+
func WithPoolID(id string) poolID {
197+
return poolID(id)
198+
}
199+
185200
func WithExecMode(mode ExecMode) execModeOption {
186201
return mode
187202
}

internal/query/transaction_test.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -502,9 +502,14 @@ type testExecuteSettings struct {
502502
txControl *query.TransactionControl
503503
syntax options.Syntax
504504
params *params.Parameters
505+
poolID string
505506
callOptions []grpc.CallOption
506507
}
507508

509+
func (s testExecuteSettings) PoolID() string {
510+
return s.poolID
511+
}
512+
508513
func (s testExecuteSettings) RetryOpts() []retry.Option {
509514
return nil
510515
}
@@ -647,6 +652,19 @@ func TestExecuteSettings(t *testing.T) {
647652
params: nil,
648653
},
649654
},
655+
{
656+
name: "WithPoolID",
657+
txOpts: []options.Execute{
658+
options.WithPoolID("test-pool-id"),
659+
},
660+
settings: testExecuteSettings{
661+
execMode: options.ExecModeExecute,
662+
statsMode: options.StatsModeNone,
663+
txControl: query.TxControl(query.WithTxID("")),
664+
syntax: options.SyntaxYQL,
665+
poolID: "test-pool-id",
666+
},
667+
},
650668
} {
651669
t.Run(tt.name, func(t *testing.T) {
652670
a := allocator.New()
@@ -659,6 +677,7 @@ func TestExecuteSettings(t *testing.T) {
659677
require.Equal(t, tt.settings.Syntax(), settings.Syntax())
660678
require.Equal(t, tt.settings.ExecMode(), settings.ExecMode())
661679
require.Equal(t, tt.settings.StatsMode(), settings.StatsMode())
680+
require.Equal(t, tt.settings.PoolID(), settings.PoolID())
662681
require.Equal(t, tt.settings.TxControl().ToYDB(a).String(), settings.TxControl().ToYDB(a).String())
663682
require.Equal(t, tt.settings.Params().ToYDB(a), settings.Params().ToYDB(a))
664683
require.Equal(t, tt.settings.CallOptions(), settings.CallOptions())

query/execute_options.go

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
package query
2+
3+
import (
4+
"google.golang.org/grpc"
5+
6+
"github.com/ydb-platform/ydb-go-sdk/v3/internal/params"
7+
"github.com/ydb-platform/ydb-go-sdk/v3/internal/query/options"
8+
"github.com/ydb-platform/ydb-go-sdk/v3/internal/query/tx"
9+
)
10+
11+
const (
12+
SyntaxYQL = options.SyntaxYQL
13+
SyntaxPostgreSQL = options.SyntaxPostgreSQL
14+
)
15+
16+
const (
17+
ExecModeParse = options.ExecModeParse
18+
ExecModeValidate = options.ExecModeValidate
19+
ExecModeExplain = options.ExecModeExplain
20+
ExecModeExecute = options.ExecModeExecute
21+
)
22+
23+
const (
24+
StatsModeBasic = options.StatsModeBasic
25+
StatsModeNone = options.StatsModeNone
26+
StatsModeFull = options.StatsModeFull
27+
StatsModeProfile = options.StatsModeProfile
28+
)
29+
30+
func WithParameters(parameters *params.Parameters) options.Execute {
31+
return options.WithParameters(parameters)
32+
}
33+
34+
func WithTxControl(txControl *tx.Control) options.Execute {
35+
return options.WithTxControl(txControl)
36+
}
37+
38+
func WithTxSettings(txSettings tx.Settings) options.DoTxOption {
39+
return options.WithTxSettings(txSettings)
40+
}
41+
42+
func WithCommit() options.Execute {
43+
return options.WithCommit()
44+
}
45+
46+
func WithExecMode(mode options.ExecMode) options.Execute {
47+
return options.WithExecMode(mode)
48+
}
49+
50+
func WithSyntax(syntax options.Syntax) options.Execute {
51+
return options.WithSyntax(syntax)
52+
}
53+
54+
func WithStatsMode(mode options.StatsMode, callback func(Stats)) options.Execute {
55+
return options.WithStatsMode(mode, callback)
56+
}
57+
58+
func WithCallOptions(opts ...grpc.CallOption) options.Execute {
59+
return options.WithCallOptions(opts...)
60+
}
61+
62+
func WithPoolID(id string) options.Execute {
63+
return options.WithPoolID(id)
64+
}

query/session.go

Lines changed: 0 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,6 @@ package query
33
import (
44
"context"
55

6-
"google.golang.org/grpc"
7-
8-
"github.com/ydb-platform/ydb-go-sdk/v3/internal/params"
9-
"github.com/ydb-platform/ydb-go-sdk/v3/internal/query/options"
10-
"github.com/ydb-platform/ydb-go-sdk/v3/internal/query/tx"
116
"github.com/ydb-platform/ydb-go-sdk/v3/internal/stats"
127
)
138

@@ -25,54 +20,3 @@ type (
2520
}
2621
Stats = stats.QueryStats
2722
)
28-
29-
const (
30-
SyntaxYQL = options.SyntaxYQL
31-
SyntaxPostgreSQL = options.SyntaxPostgreSQL
32-
)
33-
34-
const (
35-
ExecModeParse = options.ExecModeParse
36-
ExecModeValidate = options.ExecModeValidate
37-
ExecModeExplain = options.ExecModeExplain
38-
ExecModeExecute = options.ExecModeExecute
39-
)
40-
41-
const (
42-
StatsModeBasic = options.StatsModeBasic
43-
StatsModeNone = options.StatsModeNone
44-
StatsModeFull = options.StatsModeFull
45-
StatsModeProfile = options.StatsModeProfile
46-
)
47-
48-
func WithParameters(parameters *params.Parameters) options.Execute {
49-
return options.WithParameters(parameters)
50-
}
51-
52-
func WithTxControl(txControl *tx.Control) options.Execute {
53-
return options.WithTxControl(txControl)
54-
}
55-
56-
func WithTxSettings(txSettings tx.Settings) options.DoTxOption {
57-
return options.WithTxSettings(txSettings)
58-
}
59-
60-
func WithCommit() options.Execute {
61-
return options.WithCommit()
62-
}
63-
64-
func WithExecMode(mode options.ExecMode) options.Execute {
65-
return options.WithExecMode(mode)
66-
}
67-
68-
func WithSyntax(syntax options.Syntax) options.Execute {
69-
return options.WithSyntax(syntax)
70-
}
71-
72-
func WithStatsMode(mode options.StatsMode, callback func(Stats)) options.Execute {
73-
return options.WithStatsMode(mode, callback)
74-
}
75-
76-
func WithCallOptions(opts ...grpc.CallOption) options.Execute {
77-
return options.WithCallOptions(opts...)
78-
}

0 commit comments

Comments
 (0)