@@ -64,12 +64,12 @@ func Test_Insert(t *testing.T) {
64
64
`
65
65
dml = `
66
66
INSERT INTO clickhouse_test_insert (
67
- int8,
68
- int16,
67
+ int8,
68
+ int16,
69
69
int32,
70
70
int64,
71
- uint8,
72
- uint16,
71
+ uint8,
72
+ uint16,
73
73
uint32,
74
74
uint64,
75
75
float32,
@@ -79,8 +79,8 @@ func Test_Insert(t *testing.T) {
79
79
date,
80
80
datetime
81
81
) VALUES (
82
- ?,
83
- ?,
82
+ ?,
83
+ ?,
84
84
?,
85
85
?,
86
86
?,
@@ -96,13 +96,13 @@ func Test_Insert(t *testing.T) {
96
96
)
97
97
`
98
98
query = `
99
- SELECT
100
- int8,
101
- int16,
99
+ SELECT
100
+ int8,
101
+ int16,
102
102
int32,
103
103
int64,
104
- uint8,
105
- uint16,
104
+ uint8,
105
+ uint16,
106
106
uint32,
107
107
uint64,
108
108
float32,
@@ -125,9 +125,9 @@ func Test_Insert(t *testing.T) {
125
125
uint8 (1 * i ), uint16 (2 * i ), uint32 (4 * i ), uint64 (8 * i ), // uint
126
126
1.32 * float32 (i ), 1.64 * float64 (i ), //float
127
127
fmt .Sprintf ("string %d" , i ), // string
128
- "RU" , //fixedstring,
129
- time .Now (), //date
130
- time .Now (), //datetime
128
+ "RU" , //fixedstring,
129
+ time .Now (), //date
130
+ time .Now (), //datetime
131
131
)
132
132
if ! assert .NoError (t , err ) {
133
133
return
@@ -209,12 +209,12 @@ func Test_InsertBatch(t *testing.T) {
209
209
`
210
210
dml = `
211
211
INSERT INTO clickhouse_test_insert_batch (
212
- int8,
213
- int16,
212
+ int8,
213
+ int16,
214
214
int32,
215
215
int64,
216
- uint8,
217
- uint16,
216
+ uint8,
217
+ uint16,
218
218
uint32,
219
219
uint64,
220
220
float32,
@@ -225,8 +225,8 @@ func Test_InsertBatch(t *testing.T) {
225
225
datetime,
226
226
arrayString
227
227
) VALUES (
228
- ?,
229
- ?,
228
+ ?,
229
+ ?,
230
230
?,
231
231
?,
232
232
?,
@@ -255,9 +255,9 @@ func Test_InsertBatch(t *testing.T) {
255
255
uint8 (1 * i ), uint16 (2 * i ), uint32 (4 * i ), uint64 (8 * i ), // uint
256
256
1.32 * float32 (i ), 1.64 * float64 (i ), //float
257
257
fmt .Sprintf ("string %d " , i ), // string
258
- "RU" , //fixedstring,
259
- time .Now (), //date
260
- time .Now (), //datetime
258
+ "RU" , //fixedstring,
259
+ time .Now (), //date
260
+ time .Now (), //datetime
261
261
[]string {"A" , "B" , "C" },
262
262
)
263
263
if ! assert .NoError (t , err ) {
@@ -475,11 +475,11 @@ func Test_ArrayT(t *testing.T) {
475
475
dml = `
476
476
INSERT INTO clickhouse_test_array (
477
477
int8,
478
- int16,
478
+ int16,
479
479
int32,
480
480
int64,
481
- uint8,
482
- uint16,
481
+ uint8,
482
+ uint16,
483
483
uint32,
484
484
uint64,
485
485
float32,
@@ -491,8 +491,8 @@ func Test_ArrayT(t *testing.T) {
491
491
enum8,
492
492
enum16
493
493
) VALUES (
494
- ?,
495
- ?,
494
+ ?,
495
+ ?,
496
496
?,
497
497
?,
498
498
?,
@@ -510,13 +510,13 @@ func Test_ArrayT(t *testing.T) {
510
510
)
511
511
`
512
512
query = `
513
- SELECT
514
- int8,
515
- int16,
513
+ SELECT
514
+ int8,
515
+ int16,
516
516
int32,
517
517
int64,
518
- uint8,
519
- uint16,
518
+ uint8,
519
+ uint16,
520
520
uint32,
521
521
uint64,
522
522
float32,
@@ -690,7 +690,7 @@ func Test_With_Totals(t *testing.T) {
690
690
`
691
691
dml = `INSERT INTO clickhouse_test_with_totals (country) VALUES (?)`
692
692
query = `
693
- SELECT
693
+ SELECT
694
694
country,
695
695
COUNT(*)
696
696
FROM clickhouse_test_with_totals
@@ -924,12 +924,12 @@ func Test_Ternary_Operator(t *testing.T) {
924
924
}
925
925
}
926
926
if rows , err := connect .Query (`
927
- SELECT
928
- a ?
929
- '+' : '-',
927
+ SELECT
928
+ a ?
929
+ '+' : '-',
930
930
b ? '+' : '-' ,
931
931
a, b
932
- FROM clickhouse_ternary_operator
932
+ FROM clickhouse_ternary_operator
933
933
WHERE a = ? AND b < ? AND a IN(?,
934
934
?
935
935
) OR b = 0 OR b > ?` , 1 , 2 , 1 , 100 , - 1 ); assert .NoError (t , err ) {
@@ -1108,3 +1108,49 @@ func Test_Timeout(t *testing.T) {
1108
1108
}
1109
1109
}
1110
1110
}
1111
+
1112
+ func Test_InArray (t * testing.T ) {
1113
+ const (
1114
+ ddl = `
1115
+ CREATE TABLE clickhouse_test_in_array (
1116
+ Value String
1117
+ ) Engine=Memory
1118
+ `
1119
+ dml = `
1120
+ INSERT INTO clickhouse_test_in_array (Value) VALUES (?)
1121
+ `
1122
+ query = `
1123
+ SELECT
1124
+ groupArray(Value)
1125
+ FROM clickhouse_test_in_array WHERE Value IN(?)
1126
+ `
1127
+ )
1128
+ if connect , err := sql .Open ("clickhouse" , "tcp://127.0.0.1:9000?debug=true" ); assert .NoError (t , err ) && assert .NoError (t , connect .Ping ()) {
1129
+ if _ , err := connect .Exec ("DROP TABLE IF EXISTS clickhouse_test_in_array" ); assert .NoError (t , err ) {
1130
+ if _ , err := connect .Exec (ddl ); assert .NoError (t , err ) {
1131
+ if tx , err := connect .Begin (); assert .NoError (t , err ) {
1132
+ if stmt , err := tx .Prepare (dml ); assert .NoError (t , err ) {
1133
+ for _ , v := range []string {"A" , "B" , "C" } {
1134
+ _ , err = stmt .Exec (v )
1135
+ if ! assert .NoError (t , err ) {
1136
+ return
1137
+ }
1138
+ }
1139
+ } else {
1140
+ return
1141
+ }
1142
+ if assert .NoError (t , tx .Commit ()) {
1143
+ var value []string
1144
+ if err := connect .QueryRow (query , []string {"A" , "C" }).Scan (& value ); assert .NoError (t , err ) {
1145
+ if ! assert .NoError (t , err ) {
1146
+ return
1147
+ }
1148
+ }
1149
+ assert .Equal (t , []string {"A" , "C" }, value )
1150
+
1151
+ }
1152
+ }
1153
+ }
1154
+ }
1155
+ }
1156
+ }
0 commit comments