41
41
id BIGINT NOT NULL,
42
42
field BIGINT NOT NULL,
43
43
field2 BIGINT,
44
+ field3 BIGINT,
44
45
PRIMARY KEY (id)
45
46
) ENGINE=Innodb;
46
47
@@ -56,6 +57,12 @@ CREATE TABLE lookup2 (
56
57
UNIQUE KEY (field2)
57
58
) ENGINE=Innodb;
58
59
60
+ CREATE TABLE lookup3 (
61
+ field3 BIGINT NOT NULL,
62
+ keyspace_id binary(8),
63
+ UNIQUE KEY (field3)
64
+ ) ENGINE=Innodb;
65
+
59
66
CREATE TABLE thex (
60
67
id VARBINARY(64) NOT NULL,
61
68
field BIGINT NOT NULL,
@@ -88,7 +95,7 @@ CREATE TABLE thex (
88
95
"table": "lookup1",
89
96
"from": "field",
90
97
"to": "keyspace_id",
91
- "ignore_nulls": "true"
98
+ "ignore_nulls": "true"
92
99
},
93
100
"owner": "t1"
94
101
},
@@ -98,7 +105,17 @@ CREATE TABLE thex (
98
105
"table": "lookup2",
99
106
"from": "field2",
100
107
"to": "keyspace_id",
101
- "ignore_nulls": "true"
108
+ "ignore_nulls": "true"
109
+ },
110
+ "owner": "t1"
111
+ },
112
+ "lookup3": {
113
+ "type": "lookup",
114
+ "params": {
115
+ "from": "field3",
116
+ "no_verify": "true",
117
+ "table": "lookup3",
118
+ "to": "keyspace_id"
102
119
},
103
120
"owner": "t1"
104
121
}
@@ -117,6 +134,10 @@ CREATE TABLE thex (
117
134
{
118
135
"column": "field2",
119
136
"name": "lookup2"
137
+ },
138
+ {
139
+ "column": "field3",
140
+ "name": "lookup3"
120
141
}
121
142
]
122
143
},
@@ -136,6 +157,14 @@ CREATE TABLE thex (
136
157
}
137
158
]
138
159
},
160
+ "lookup3": {
161
+ "column_vindexes": [
162
+ {
163
+ "column": "field3",
164
+ "name": "binary_md5_vdx"
165
+ }
166
+ ]
167
+ },
139
168
"thex": {
140
169
"column_vindexes": [
141
170
{
@@ -216,51 +245,51 @@ func TestVindexBindVarOverlap(t *testing.T) {
216
245
require .Nil (t , err )
217
246
defer conn .Close ()
218
247
219
- utils .Exec (t , conn , "INSERT INTO t1 (id, field, field2) VALUES " +
220
- "(0,1,2), " +
221
- "(1,2,3), " +
222
- "(2,3,4), " +
223
- "(3,4,5), " +
224
- "(4,5,6), " +
225
- "(5,6,7), " +
226
- "(6,7,8), " +
227
- "(7,8,9), " +
228
- "(8,9,10), " +
229
- "(9,10,11), " +
230
- "(10,11,12), " +
231
- "(11,12,13), " +
232
- "(12,13,14), " +
233
- "(13,14,15), " +
234
- "(14,15,16), " +
235
- "(15,16,17), " +
236
- "(16,17,18), " +
237
- "(17,18,19), " +
238
- "(18,19,20), " +
239
- "(19,20,21), " +
240
- "(20,21,22)" )
241
- result := utils .Exec (t , conn , "select id, field, field2 from t1 order by id" )
248
+ utils .Exec (t , conn , "INSERT INTO t1 (id, field, field2, field3 ) VALUES " +
249
+ "(0,1,2,3 ), " +
250
+ "(1,2,3,4 ), " +
251
+ "(2,3,4,5 ), " +
252
+ "(3,4,5,6 ), " +
253
+ "(4,5,6,7 ), " +
254
+ "(5,6,7,8 ), " +
255
+ "(6,7,8,9 ), " +
256
+ "(7,8,9,10 ), " +
257
+ "(8,9,10,11 ), " +
258
+ "(9,10,11,12 ), " +
259
+ "(10,11,12,13 ), " +
260
+ "(11,12,13,14 ), " +
261
+ "(12,13,14,15 ), " +
262
+ "(13,14,15,16 ), " +
263
+ "(14,15,16,17 ), " +
264
+ "(15,16,17,18 ), " +
265
+ "(16,17,18,19 ), " +
266
+ "(17,18,19,20 ), " +
267
+ "(18,19,20,21 ), " +
268
+ "(19,20,21,22 ), " +
269
+ "(20,21,22,23 )" )
270
+ result := utils .Exec (t , conn , "select id, field, field2, field3 from t1 order by id" )
242
271
243
272
expected :=
244
- "[[INT64(0) INT64(1) INT64(2)] " +
245
- "[INT64(1) INT64(2) INT64(3)] " +
246
- "[INT64(2) INT64(3) INT64(4)] " +
247
- "[INT64(3) INT64(4) INT64(5)] " +
248
- "[INT64(4) INT64(5) INT64(6)] " +
249
- "[INT64(5) INT64(6) INT64(7)] " +
250
- "[INT64(6) INT64(7) INT64(8)] " +
251
- "[INT64(7) INT64(8) INT64(9)] " +
252
- "[INT64(8) INT64(9) INT64(10)] " +
253
- "[INT64(9) INT64(10) INT64(11)] " +
254
- "[INT64(10) INT64(11) INT64(12)] " +
255
- "[INT64(11) INT64(12) INT64(13)] " +
256
- "[INT64(12) INT64(13) INT64(14)] " +
257
- "[INT64(13) INT64(14) INT64(15)] " +
258
- "[INT64(14) INT64(15) INT64(16)] " +
259
- "[INT64(15) INT64(16) INT64(17)] " +
260
- "[INT64(16) INT64(17) INT64(18)] " +
261
- "[INT64(17) INT64(18) INT64(19)] " +
262
- "[INT64(18) INT64(19) INT64(20)] " +
263
- "[INT64(19) INT64(20) INT64(21)] " +
264
- "[INT64(20) INT64(21) INT64(22)]]"
273
+ "[[INT64(0) INT64(1) INT64(2) INT64(3) ] " +
274
+ "[INT64(1) INT64(2) INT64(3) INT64(4) ] " +
275
+ "[INT64(2) INT64(3) INT64(4) INT64(5) ] " +
276
+ "[INT64(3) INT64(4) INT64(5) INT64(6) ] " +
277
+ "[INT64(4) INT64(5) INT64(6) INT64(7) ] " +
278
+ "[INT64(5) INT64(6) INT64(7) INT64(8) ] " +
279
+ "[INT64(6) INT64(7) INT64(8) INT64(9) ] " +
280
+ "[INT64(7) INT64(8) INT64(9) INT64(10) ] " +
281
+ "[INT64(8) INT64(9) INT64(10) INT64(11) ] " +
282
+ "[INT64(9) INT64(10) INT64(11) INT64(12) ] " +
283
+ "[INT64(10) INT64(11) INT64(12) INT64(13) ] " +
284
+ "[INT64(11) INT64(12) INT64(13) INT64(14) ] " +
285
+ "[INT64(12) INT64(13) INT64(14) INT64(15) ] " +
286
+ "[INT64(13) INT64(14) INT64(15) INT64(16) ] " +
287
+ "[INT64(14) INT64(15) INT64(16) INT64(17) ] " +
288
+ "[INT64(15) INT64(16) INT64(17) INT64(18) ] " +
289
+ "[INT64(16) INT64(17) INT64(18) INT64(19) ] " +
290
+ "[INT64(17) INT64(18) INT64(19) INT64(20) ] " +
291
+ "[INT64(18) INT64(19) INT64(20) INT64(21) ] " +
292
+ "[INT64(19) INT64(20) INT64(21) INT64(22) ] " +
293
+ "[INT64(20) INT64(21) INT64(22) INT64(23) ]]"
265
294
assert .Equal (t , expected , fmt .Sprintf ("%v" , result .Rows ))
266
295
}
0 commit comments