@@ -22,9 +22,10 @@ import (
22
22
"crypto/rand"
23
23
"database/sql/driver"
24
24
"fmt"
25
- "github.com/stretchr/testify/require"
26
25
"testing"
27
26
27
+ "github.com/stretchr/testify/require"
28
+
28
29
"github.com/ClickHouse/clickhouse-go/v2"
29
30
"github.com/stretchr/testify/assert"
30
31
)
@@ -56,6 +57,8 @@ func TestFixedString(t *testing.T) {
56
57
, Col4 Array(FixedString(10))
57
58
, Col5 Array(Nullable(FixedString(10)))
58
59
, Col6 FixedString(12)
60
+ , Col7 FixedString(10)
61
+ , Col8 FixedString(10)
59
62
) Engine MergeTree() ORDER BY tuple()
60
63
`
61
64
defer func () {
@@ -71,10 +74,12 @@ func TestFixedString(t *testing.T) {
71
74
col4Data = []string {"ClickHouse" , "ClickHouse" , "ClickHouse" }
72
75
col5Data = []* string {& col1Data , nil , & col1Data }
73
76
col6Data = "clickhouse"
77
+ col7Data = []byte ("clickhouse" )
78
+ col8Data = [10 ]byte {99 , 108 , 105 , 99 , 107 , 104 , 111 , 117 , 115 , 101 }
74
79
)
75
80
_ , err = rand .Read (col2Data .data [:])
76
81
require .NoError (t , err )
77
- require .NoError (t , batch .Append (col1Data , col2Data , col3Data , col4Data , col5Data , col6Data ))
82
+ require .NoError (t , batch .Append (col1Data , col2Data , col3Data , col4Data , col5Data , col6Data , col7Data , col8Data ))
78
83
require .Equal (t , 1 , batch .Rows ())
79
84
require .NoError (t , batch .Send ())
80
85
var (
@@ -84,14 +89,18 @@ func TestFixedString(t *testing.T) {
84
89
col4 []string
85
90
col5 []* string
86
91
col6 string
92
+ col7 []byte
93
+ col8 [10 ]byte
87
94
)
88
- require .NoError (t , conn .QueryRow (ctx , "SELECT * FROM test_fixed_string" ).Scan (& col1 , & col2 , & col3 , & col4 , & col5 , & col6 ))
95
+ require .NoError (t , conn .QueryRow (ctx , "SELECT * FROM test_fixed_string" ).Scan (& col1 , & col2 , & col3 , & col4 , & col5 , & col6 , & col7 , & col8 ))
89
96
assert .Equal (t , col1Data , col1 )
90
97
assert .Equal (t , col2Data .data , col2 .data )
91
98
assert .Equal (t , col3Data , col3 )
92
99
assert .Equal (t , col4Data , col4 )
93
100
assert .Equal (t , col5Data , col5 )
94
101
assert .Equal (t , col6Data + string ([]byte {0 , 0 }), col6 )
102
+ assert .Equal (t , col7Data , col7 )
103
+ assert .Equal (t , col8Data , col8 )
95
104
rows , err := conn .Query (ctx , "SELECT CAST('RU' AS FixedString(2)) FROM system.numbers_mt LIMIT 10" )
96
105
require .NoError (t , err )
97
106
var count int
@@ -206,6 +215,8 @@ func TestColumnarFixedString(t *testing.T) {
206
215
, Col3 Nullable(FixedString(10))
207
216
, Col4 Array(FixedString(10))
208
217
, Col5 Array(Nullable(FixedString(10)))
218
+ , Col6 FixedString(10)
219
+ , Col7 FixedString(10)
209
220
) Engine MergeTree() ORDER BY tuple()
210
221
`
211
222
defer func () {
@@ -220,6 +231,8 @@ func TestColumnarFixedString(t *testing.T) {
220
231
col3Data = & col1Data
221
232
col4Data = []string {"ClickHouse" , "ClickHouse" , "ClickHouse" }
222
233
col5Data = []* string {& col1Data , nil , & col1Data }
234
+ col6Data = []byte ("clickhouse" )
235
+ col7Data = [10 ]byte {99 , 108 , 105 , 99 , 107 , 104 , 111 , 117 , 115 , 101 }
223
236
)
224
237
require .NoError (t , batch .Column (0 ).Append ([]string {
225
238
col1Data , col1Data , col1Data , col1Data , col1Data ,
@@ -236,6 +249,12 @@ func TestColumnarFixedString(t *testing.T) {
236
249
require .NoError (t , batch .Column (4 ).Append ([][]* string {
237
250
col5Data , col5Data , col5Data , col5Data , col5Data ,
238
251
}))
252
+ require .NoError (t , batch .Column (5 ).Append ([][]byte {
253
+ col6Data , col6Data , col6Data , col6Data , col6Data ,
254
+ }))
255
+ require .NoError (t , batch .Column (6 ).Append ([][10 ]byte {
256
+ col7Data , col7Data , col7Data , col7Data , col7Data ,
257
+ }))
239
258
require .Equal (t , 5 , batch .Rows ())
240
259
require .NoError (t , batch .Send ())
241
260
var (
@@ -244,13 +263,17 @@ func TestColumnarFixedString(t *testing.T) {
244
263
col3 * string
245
264
col4 []string
246
265
col5 []* string
266
+ col6 []byte
267
+ col7 [10 ]byte
247
268
)
248
- require .NoError (t , conn .QueryRow (ctx , "SELECT * FROM test_fixed_string LIMIT 1" ).Scan (& col1 , & col2 , & col3 , & col4 , & col5 ))
269
+ require .NoError (t , conn .QueryRow (ctx , "SELECT * FROM test_fixed_string LIMIT 1" ).Scan (& col1 , & col2 , & col3 , & col4 , & col5 , & col6 , & col7 ))
249
270
assert .Equal (t , col1Data , col1 )
250
271
assert .Equal (t , col2Data , col2 )
251
272
assert .Equal (t , col3Data , col3 )
252
273
assert .Equal (t , col4Data , col4 )
253
274
assert .Equal (t , col5Data , col5 )
275
+ assert .Equal (t , col6Data , col6 )
276
+ assert .Equal (t , col7Data , col7 )
254
277
}
255
278
256
279
func BenchmarkFixedString (b * testing.B ) {
0 commit comments