Skip to content

Commit 62dbf1e

Browse files
committed
added checks rows values
1 parent 4bc2850 commit 62dbf1e

File tree

1 file changed

+36
-19
lines changed

1 file changed

+36
-19
lines changed

tests/integration/query_range_test.go

Lines changed: 36 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,14 @@ import (
77
"context"
88
"fmt"
99
"os"
10+
"strconv"
1011
"testing"
1112
"time"
1213

1314
"github.com/stretchr/testify/require"
1415

1516
"github.com/ydb-platform/ydb-go-sdk/v3"
17+
"github.com/ydb-platform/ydb-go-sdk/v3/internal/value"
1618
"github.com/ydb-platform/ydb-go-sdk/v3/internal/version"
1719
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xtest"
1820
"github.com/ydb-platform/ydb-go-sdk/v3/query"
@@ -32,40 +34,55 @@ func TestQueryRange(t *testing.T) {
3234
)
3335
require.NoError(t, err)
3436
t.Run("Execute", func(t *testing.T) {
35-
var (
36-
p1 string
37-
p2 uint64
38-
p3 time.Duration
39-
)
37+
listItems := make([]value.Value, 1000)
38+
for i := range make([]struct{}, 1000) {
39+
listItems[i] = value.StructValue(
40+
value.StructValueField{
41+
Name: "p1",
42+
V: value.TextValue(strconv.Itoa(i)),
43+
},
44+
value.StructValueField{
45+
Name: "p2",
46+
V: value.Uint64Value(uint64(i)),
47+
},
48+
value.StructValueField{
49+
Name: "p3",
50+
V: value.IntervalValueFromDuration(time.Duration(i * 1000)),
51+
},
52+
)
53+
}
4054
r, err := db.Query().Execute(ctx, `
41-
DECLARE $p1 AS Text;
42-
DECLARE $p2 AS Uint64;
43-
DECLARE $p3 AS Interval;
44-
SELECT $p1, $p2, $p3;
45-
`,
55+
DECLARE $values AS List<Struct<p1:Text,p2:Uint64,p3:Interval>>;
56+
SELECT p1, p2, p3 FROM AS_TABLE($values);
57+
`,
4658
query.WithParameters(
47-
ydb.ParamsBuilder().
48-
Param("$p1").Text("test").
49-
Param("$p2").Uint64(100500000000).
50-
Param("$p3").Interval(time.Duration(100500000000)).
51-
Build(),
59+
ydb.ParamsBuilder().Param("$values").BeginList().AddItems(listItems...).EndList().Build(),
5260
),
53-
query.WithSyntax(query.SyntaxYQL),
5461
)
5562
require.NoError(t, err)
63+
count := 0
5664
for rs, err := range r.Range(ctx) {
5765
require.NoError(t, err)
5866
for row, err := range rs.Range(ctx) {
5967
require.NoError(t, err)
6068

69+
var (
70+
p1 string
71+
p2 uint64
72+
p3 time.Duration
73+
)
74+
6175
err = row.Scan(&p1, &p2, &p3)
6276
require.NoError(t, err)
6377

64-
require.EqualValues(t, "test", p1)
65-
require.EqualValues(t, 100500000000, p2)
66-
require.EqualValues(t, time.Duration(100500000000), p3)
78+
require.EqualValues(t, strconv.Itoa(count), p1)
79+
require.EqualValues(t, count, p2)
80+
require.EqualValues(t, time.Duration(count*1000), p3)
81+
82+
count++
6783
}
6884
}
85+
require.EqualValues(t, 1000, count)
6986
})
7087
t.Run("Do", func(t *testing.T) {
7188
var (

0 commit comments

Comments
 (0)