Skip to content

Commit c87fec4

Browse files
authored
Merge pull request #285 from ydb-platform/value
WIP: pools of values + primitive golang types as values
2 parents 6c41559 + 470cf8d commit c87fec4

File tree

76 files changed

+2711
-46
lines changed

Some content is hidden

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

76 files changed

+2711
-46
lines changed

.github/workflows/lint.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@ jobs:
1414
- name: golangci-lint
1515
uses: golangci/golangci-lint-action@v2
1616
with:
17-
version: v1.45.2
17+
version: v1.46.2

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
* Added internal experimental packages `internal/value/exp` and `internal/value/exp/allocator` with alternative value implementations with zero-allocation model
12
* Supported parsing of database name from connection string URI path
23
* Added `options.WithExecuteScanQueryStats` option
34
* Added to query stats plan and AST

go.mod

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,22 @@
11
module github.com/ydb-platform/ydb-go-sdk/v3
22

3-
go 1.13
3+
go 1.18
44

55
require (
66
github.com/jonboulle/clockwork v0.2.2
77
github.com/stretchr/testify v1.7.0
88
github.com/ydb-platform/ydb-go-genproto v0.0.0-20220531094121-36ca6bddb9f7
99
google.golang.org/grpc v1.43.0
1010
google.golang.org/protobuf v1.27.1
11+
)
12+
13+
require (
14+
github.com/davecgh/go-spew v1.1.0 // indirect
15+
github.com/golang/protobuf v1.5.0 // indirect
16+
github.com/pmezard/go-difflib v1.0.0 // indirect
17+
golang.org/x/net v0.0.0-20200822124328-c89045814202 // indirect
18+
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd // indirect
19+
golang.org/x/text v0.3.0 // indirect
20+
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 // indirect
1121
gopkg.in/yaml.v3 v3.0.0 // indirect
1222
)

go.sum

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,6 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
5555
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
5656
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
5757
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
58-
github.com/ydb-platform/ydb-go-genproto v0.0.0-20220203104745-929cf9c248bc h1:xvTP0fhYNm+Ws+xC34jzF9EdorPUKkucJr0TyybqVSk=
59-
github.com/ydb-platform/ydb-go-genproto v0.0.0-20220203104745-929cf9c248bc/go.mod h1:cc138nptTn9eKptCQl/grxP6pBKpo/bnXDiOxuVZtps=
60-
github.com/ydb-platform/ydb-go-genproto v0.0.0-20220531051540-d27abccd0a81 h1:CFnDY9gsVe045+KfMg3GKh3r4zCp9PFa1YMcPLAFkfQ=
61-
github.com/ydb-platform/ydb-go-genproto v0.0.0-20220531051540-d27abccd0a81/go.mod h1:cc138nptTn9eKptCQl/grxP6pBKpo/bnXDiOxuVZtps=
6258
github.com/ydb-platform/ydb-go-genproto v0.0.0-20220531094121-36ca6bddb9f7 h1:S3bwscnat3pa188pvEuXDUstxPjCnGpn5bZJuRMkL+g=
6359
github.com/ydb-platform/ydb-go-genproto v0.0.0-20220531094121-36ca6bddb9f7/go.mod h1:cc138nptTn9eKptCQl/grxP6pBKpo/bnXDiOxuVZtps=
6460
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
@@ -129,7 +125,6 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+
129125
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
130126
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
131127
gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
132-
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
133128
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
134129
gopkg.in/yaml.v3 v3.0.0 h1:hjy8E9ON/egN1tAYqKb61G10WtihqetD4sz2H+8nIeA=
135130
gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

internal/table/client_test.go

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ func TestSessionPoolCreateAbnormalResult(t *testing.T) {
4040
testutil.NewRouter(
4141
testutil.WithInvokeHandlers(
4242
testutil.InvokeHandlers{
43-
// nolint:unparam
4443
testutil.TableCreateSession: func(interface{}) (proto.Message, error) {
4544
return &Ydb_Table.CreateSessionResult{
4645
SessionId: testutil.SessionID(),
@@ -98,13 +97,11 @@ func TestSessionPoolKeeperWake(t *testing.T) {
9897
testutil.NewRouter(
9998
testutil.WithInvokeHandlers(
10099
testutil.InvokeHandlers{
101-
// nolint:unparam
102100
testutil.TableCreateSession: func(interface{}) (proto.Message, error) {
103101
return &Ydb_Table.CreateSessionResult{
104102
SessionId: testutil.SessionID(),
105103
}, nil
106104
},
107-
// nolint:unparam
108105
testutil.TableKeepAlive: func(interface{}) (proto.Message, error) {
109106
keepalive <- struct{}{}
110107
return nil, nil
@@ -172,7 +169,6 @@ func TestSessionPoolCloseWhenWaiting(t *testing.T) {
172169
p := newClientWithStubBuilder(
173170
t,
174171
testutil.NewRouter(testutil.WithInvokeHandlers(testutil.InvokeHandlers{
175-
// nolint:unparam
176172
testutil.TableCreateSession: func(interface{}) (proto.Message, error) {
177173
return &Ydb_Table.CreateSessionResult{
178174
SessionId: testutil.SessionID(),
@@ -250,7 +246,6 @@ func TestSessionPoolClose(t *testing.T) {
250246
p := newClientWithStubBuilder(
251247
t,
252248
testutil.NewRouter(testutil.WithInvokeHandlers(testutil.InvokeHandlers{
253-
// nolint:unparam
254249
testutil.TableCreateSession: func(interface{}) (proto.Message, error) {
255250
return &Ydb_Table.CreateSessionResult{
256251
SessionId: testutil.SessionID(),
@@ -347,7 +342,6 @@ func TestRaceWgClosed(t *testing.T) {
347342
p := newClientWithStubBuilder(
348343
t,
349344
testutil.NewRouter(testutil.WithInvokeHandlers(testutil.InvokeHandlers{
350-
// nolint:unparam
351345
testutil.TableCreateSession: func(interface{}) (proto.Message, error) {
352346
return &Ydb_Table.CreateSessionResult{
353347
SessionId: testutil.SessionID(),
@@ -404,7 +398,6 @@ func TestSessionPoolDeleteReleaseWait(t *testing.T) {
404398
p := newClientWithStubBuilder(
405399
t,
406400
testutil.NewRouter(testutil.WithInvokeHandlers(testutil.InvokeHandlers{
407-
// nolint:unparam
408401
testutil.TableCreateSession: func(interface{}) (proto.Message, error) {
409402
return &Ydb_Table.CreateSessionResult{
410403
SessionId: testutil.SessionID(),
@@ -548,7 +541,6 @@ func TestSessionPoolPutInFull(t *testing.T) {
548541
p := newClientWithStubBuilder(
549542
t,
550543
testutil.NewRouter(testutil.WithInvokeHandlers(testutil.InvokeHandlers{
551-
// nolint:unparam
552544
testutil.TableCreateSession: func(interface{}) (proto.Message, error) {
553545
return &Ydb_Table.CreateSessionResult{
554546
SessionId: testutil.SessionID(),
@@ -596,7 +588,6 @@ func TestSessionPoolSizeLimitOverflow(t *testing.T) {
596588
p := newClientWithStubBuilder(
597589
t,
598590
testutil.NewRouter(testutil.WithInvokeHandlers(testutil.InvokeHandlers{
599-
// nolint:unparam
600591
testutil.TableCreateSession: func(interface{}) (result proto.Message, _ error) {
601592
return &Ydb_Table.CreateSessionResult{
602593
SessionId: testutil.SessionID(),
@@ -699,14 +690,12 @@ func TestSessionPoolGetPut(t *testing.T) {
699690
testutil.NewRouter(
700691
testutil.WithInvokeHandlers(
701692
testutil.InvokeHandlers{
702-
// nolint:unparam
703693
testutil.TableCreateSession: func(interface{}) (proto.Message, error) {
704694
created++
705695
return &Ydb_Table.CreateSessionResult{
706696
SessionId: testutil.SessionID(),
707697
}, nil
708698
},
709-
// nolint:unparam
710699
testutil.TableDeleteSession: func(interface{}) (proto.Message, error) {
711700
deleted++
712701
return nil, nil
@@ -744,7 +733,6 @@ func TestSessionPoolDisableBackgroundGoroutines(t *testing.T) {
744733
p := newClientWithStubBuilder(
745734
t,
746735
testutil.NewRouter(testutil.WithInvokeHandlers(testutil.InvokeHandlers{
747-
// nolint:unparam
748736
testutil.TableCreateSession: func(interface{}) (result proto.Message, _ error) {
749737
return &Ydb_Table.CreateSessionResult{
750738
SessionId: testutil.SessionID(),
@@ -784,13 +772,11 @@ func TestSessionPoolKeepAlive(t *testing.T) {
784772
testutil.NewRouter(
785773
testutil.WithInvokeHandlers(
786774
testutil.InvokeHandlers{
787-
// nolint:unparam
788775
testutil.TableKeepAlive: func(interface{}) (proto.Message, error) {
789776
atomic.AddUint32(&keepAliveCount, 1)
790777
return &Ydb_Table.KeepAliveResult{}, nil
791778
},
792779
testutil.TableDeleteSession: okHandler,
793-
// nolint:unparam
794780
testutil.TableCreateSession: func(interface{}) (proto.Message, error) {
795781
return &Ydb_Table.CreateSessionResult{
796782
SessionId: testutil.SessionID(),
@@ -861,13 +847,11 @@ func TestSessionPoolKeepAliveOrdering(t *testing.T) {
861847
testutil.NewRouter(
862848
testutil.WithInvokeHandlers(
863849
testutil.InvokeHandlers{
864-
// nolint:unparam
865850
testutil.TableCreateSession: func(interface{}) (proto.Message, error) {
866851
return &Ydb_Table.CreateSessionResult{
867852
SessionId: testutil.SessionID(),
868853
}, nil
869854
},
870-
// nolint:unparam
871855
testutil.TableKeepAlive: func(interface{}) (proto.Message, error) {
872856
done := make(chan struct{})
873857
keepalive <- done
@@ -928,7 +912,6 @@ func TestSessionPoolDoublePut(t *testing.T) {
928912
p := newClientWithStubBuilder(
929913
t,
930914
testutil.NewRouter(testutil.WithInvokeHandlers(testutil.InvokeHandlers{
931-
// nolint:unparam
932915
testutil.TableCreateSession: func(interface{}) (proto.Message, error) {
933916
return &Ydb_Table.CreateSessionResult{
934917
SessionId: testutil.SessionID(),
@@ -969,18 +952,15 @@ func TestSessionPoolKeepAliveCondFairness(t *testing.T) {
969952
testutil.NewRouter(
970953
testutil.WithInvokeHandlers(
971954
testutil.InvokeHandlers{
972-
// nolint:unparam
973955
testutil.TableCreateSession: func(interface{}) (proto.Message, error) {
974956
return &Ydb_Table.CreateSessionResult{
975957
SessionId: testutil.SessionID(),
976958
}, nil
977959
},
978-
// nolint:unparam
979960
testutil.TableKeepAlive: func(request interface{}) (proto.Message, error) {
980961
keepalive <- request
981962
return nil, <-keepaliveResult
982963
},
983-
// nolint:unparam
984964
testutil.TableDeleteSession: func(request interface{}) (proto.Message, error) {
985965
deleteSession <- request
986966
return nil, <-deleteSessionResult
@@ -1053,7 +1033,6 @@ func TestSessionPoolKeepAliveMinSize(t *testing.T) {
10531033
testutil.NewRouter(
10541034
testutil.WithInvokeHandlers(
10551035
testutil.InvokeHandlers{
1056-
// nolint:unparam
10571036
testutil.TableCreateSession: func(interface{}) (result proto.Message, _ error) {
10581037
return &Ydb_Table.CreateSessionResult{
10591038
SessionId: testutil.SessionID(),
@@ -1120,14 +1099,12 @@ func TestSessionPoolKeepAliveWithBadSession(t *testing.T) {
11201099
testutil.NewRouter(
11211100
testutil.WithInvokeHandlers(
11221101
testutil.InvokeHandlers{
1123-
// nolint:unparam
11241102
// nolint:nolintlint
11251103
testutil.TableCreateSession: func(interface{}) (proto.Message, error) {
11261104
return &Ydb_Table.CreateSessionResult{
11271105
SessionId: testutil.SessionID(),
11281106
}, nil
11291107
},
1130-
// nolint:unparam
11311108
// nolint:nolintlint
11321109
testutil.TableKeepAlive: func(interface{}) (proto.Message, error) {
11331110
return nil, xerrors.Operation(
@@ -1166,13 +1143,11 @@ func TestSessionPoolKeeperRetry(t *testing.T) {
11661143
testutil.NewRouter(
11671144
testutil.WithInvokeHandlers(
11681145
testutil.InvokeHandlers{
1169-
// nolint:unparam
11701146
testutil.TableCreateSession: func(interface{}) (proto.Message, error) {
11711147
return &Ydb_Table.CreateSessionResult{
11721148
SessionId: testutil.SessionID(),
11731149
}, nil
11741150
},
1175-
// nolint:unparam
11761151
testutil.TableKeepAlive: func(interface{}) (proto.Message, error) {
11771152
if retry {
11781153
retry = false
@@ -1288,15 +1263,13 @@ var okHandler = func(interface{}) (proto.Message, error) {
12881263
var simpleCluster = testutil.NewRouter(
12891264
testutil.WithInvokeHandlers(
12901265
testutil.InvokeHandlers{
1291-
// nolint:unparam
12921266
testutil.TableExecuteDataQuery: func(interface{}) (proto.Message, error) {
12931267
return &Ydb_Table.ExecuteQueryResult{
12941268
TxMeta: &Ydb_Table.TransactionMeta{
12951269
Id: "",
12961270
},
12971271
}, nil
12981272
},
1299-
// nolint:unparam
13001273
testutil.TableBeginTransaction: func(interface{}) (proto.Message, error) {
13011274
return &Ydb_Table.BeginTransactionResult{
13021275
TxMeta: &Ydb_Table.TransactionMeta{
@@ -1310,7 +1283,6 @@ var simpleCluster = testutil.NewRouter(
13101283
testutil.TablePrepareDataQuery: func(interface{}) (proto.Message, error) {
13111284
return &Ydb_Table.PrepareQueryResult{}, nil
13121285
},
1313-
// nolint:unparam
13141286
testutil.TableCreateSession: func(interface{}) (proto.Message, error) {
13151287
return &Ydb_Table.CreateSessionResult{
13161288
SessionId: testutil.SessionID(),

internal/table/keep_in_cache_test.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ func TestQueryCachePolicyKeepInCache(t *testing.T) {
7373
cc: testutil.NewRouter(
7474
testutil.WithInvokeHandlers(
7575
testutil.InvokeHandlers{
76-
// nolint:unparam
7776
testutil.TableExecuteDataQuery: func(request interface{}) (proto.Message, error) {
7877
r, ok := request.(*Ydb_Table.ExecuteDataQueryRequest)
7978
if !ok {
@@ -86,7 +85,6 @@ func TestQueryCachePolicyKeepInCache(t *testing.T) {
8685
},
8786
}, nil
8887
},
89-
// nolint:unparam
9088
testutil.TableCreateSession: func(interface{}) (proto.Message, error) {
9189
return &Ydb_Table.CreateSessionResult{
9290
SessionId: testutil.SessionID(),

internal/table/session_test.go

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,9 @@ func TestSessionKeepAlive(t *testing.T) {
3535
cc: testutil.NewRouter(
3636
testutil.WithInvokeHandlers(
3737
testutil.InvokeHandlers{
38-
// nolint:unparam
39-
// nolint:nolintlint
4038
testutil.TableKeepAlive: func(interface{}) (proto.Message, error) {
4139
return &Ydb_Table.KeepAliveResult{SessionStatus: status}, e
4240
},
43-
// nolint:unparam
4441
testutil.TableCreateSession: func(interface{}) (proto.Message, error) {
4542
return &Ydb_Table.CreateSessionResult{
4643
SessionId: testutil.SessionID(),
@@ -92,7 +89,6 @@ func TestSessionDescribeTable(t *testing.T) {
9289
cc: testutil.NewRouter(
9390
testutil.WithInvokeHandlers(
9491
testutil.InvokeHandlers{
95-
// nolint:unparam
9692
testutil.TableCreateSession: func(interface{}) (proto.Message, error) {
9793
return &Ydb_Table.CreateSessionResult{
9894
SessionId: testutil.SessionID(),
@@ -334,15 +330,13 @@ func TestSessionOperationModeOnExecuteDataQuery(t *testing.T) {
334330
testutil.NewRouter(
335331
testutil.WithInvokeHandlers(
336332
testutil.InvokeHandlers{
337-
// nolint:unparam
338333
testutil.TableExecuteDataQuery: func(interface{}) (proto.Message, error) {
339334
return &Ydb_Table.ExecuteQueryResult{
340335
TxMeta: &Ydb_Table.TransactionMeta{
341336
Id: "",
342337
},
343338
}, nil
344339
},
345-
// nolint:unparam
346340
testutil.TableBeginTransaction: func(interface{}) (proto.Message, error) {
347341
return &Ydb_Table.BeginTransactionResult{
348342
TxMeta: &Ydb_Table.TransactionMeta{
@@ -356,7 +350,6 @@ func TestSessionOperationModeOnExecuteDataQuery(t *testing.T) {
356350
testutil.TablePrepareDataQuery: func(request interface{}) (result proto.Message, err error) {
357351
return &Ydb_Table.PrepareQueryResult{}, nil
358352
},
359-
// nolint:unparam
360353
testutil.TableCreateSession: func(interface{}) (proto.Message, error) {
361354
return &Ydb_Table.CreateSessionResult{
362355
SessionId: testutil.SessionID(),

internal/table/transaction_test.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@ func TestTxSkipRollbackForCommitted(t *testing.T) {
7070
},
7171
}, nil
7272
},
73-
// nolint:unparam
7473
testutil.TableRollbackTransaction: func(request interface{}) (proto.Message, error) {
7574
_, ok := request.(*Ydb_Table.RollbackTransactionRequest)
7675
if !ok {
@@ -84,7 +83,6 @@ func TestTxSkipRollbackForCommitted(t *testing.T) {
8483
},
8584
}, nil
8685
},
87-
// nolint:unparam
8886
testutil.TableCreateSession: func(interface{}) (proto.Message, error) {
8987
return &Ydb_Table.CreateSessionResult{
9088
SessionId: testutil.SessionID(),

0 commit comments

Comments
 (0)