Skip to content

Commit 68e96d7

Browse files
authored
* Added ydb.Param.Range() range iterator (#1852)
1 parent f4c1f39 commit 68e96d7

File tree

3 files changed

+27
-0
lines changed

3 files changed

+27
-0
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
* Added `ydb.Param.Range()` range iterator
2+
13
## v3.115.0
24
* Added public package `pkg/xtest` with test helpers
35

internal/params/parameters.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"github.com/ydb-platform/ydb-go-genproto/protos/Ydb"
99

1010
"github.com/ydb-platform/ydb-go-sdk/v3/internal/value"
11+
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xiter"
1112
"github.com/ydb-platform/ydb-go-sdk/v3/pkg/xstring"
1213
"github.com/ydb-platform/ydb-go-sdk/v3/table/types"
1314
)
@@ -23,11 +24,25 @@ type (
2324
value value.Value
2425
}
2526
Parameters interface {
27+
fmt.Stringer
28+
2629
ToYDB() (map[string]*Ydb.TypedValue, error)
30+
Range() xiter.Seq2[string, value.Value]
2731
}
2832
Params []*Parameter
2933
)
3034

35+
func (p *Params) Range() xiter.Seq2[string, value.Value] {
36+
return func(yield func(name string, v value.Value) bool) {
37+
for _, param := range *p {
38+
cont := yield(param.name, param.value)
39+
if !cont {
40+
return
41+
}
42+
}
43+
}
44+
}
45+
3146
var _ Parameters = (*Params)(nil)
3247

3348
func Named(name string, value value.Value) *Parameter {

params_map.go

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

99
"github.com/ydb-platform/ydb-go-sdk/v3/internal/bind"
1010
"github.com/ydb-platform/ydb-go-sdk/v3/internal/params"
11+
"github.com/ydb-platform/ydb-go-sdk/v3/internal/value"
1112
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xerrors"
13+
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xiter"
1214
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xsql"
1315
)
1416

1517
type wrongParameters struct {
1618
err error
1719
}
1820

21+
func (p wrongParameters) String() string {
22+
panic(p.err)
23+
}
24+
25+
func (p wrongParameters) Range() xiter.Seq2[string, value.Value] {
26+
panic(p.err)
27+
}
28+
1929
func (p wrongParameters) ToYDB() (map[string]*Ydb.TypedValue, error) {
2030
return nil, xerrors.WithStackTrace(p.err)
2131
}

0 commit comments

Comments
 (0)