42
42
field BIGINT NOT NULL,
43
43
field2 BIGINT,
44
44
field3 BIGINT,
45
+ field4 BIGINT,
46
+ field5 BIGINT,
47
+ field6 BIGINT,
45
48
PRIMARY KEY (id)
46
49
) ENGINE=Innodb;
47
50
@@ -63,6 +66,24 @@ CREATE TABLE lookup3 (
63
66
UNIQUE KEY (field3)
64
67
) ENGINE=Innodb;
65
68
69
+ CREATE TABLE lookup4 (
70
+ field4 BIGINT NOT NULL,
71
+ keyspace_id binary(8),
72
+ UNIQUE KEY (field4)
73
+ ) ENGINE=Innodb;
74
+
75
+ CREATE TABLE lookup5 (
76
+ field5 BIGINT NOT NULL,
77
+ keyspace_id binary(8),
78
+ UNIQUE KEY (field5)
79
+ ) ENGINE=Innodb;
80
+
81
+ CREATE TABLE lookup6 (
82
+ field6 BIGINT NOT NULL,
83
+ keyspace_id binary(8),
84
+ UNIQUE KEY (field6)
85
+ ) ENGINE=Innodb;
86
+
66
87
CREATE TABLE thex (
67
88
id VARBINARY(64) NOT NULL,
68
89
field BIGINT NOT NULL,
@@ -118,6 +139,36 @@ CREATE TABLE thex (
118
139
"to": "keyspace_id"
119
140
},
120
141
"owner": "t1"
142
+ },
143
+ "lookup4": {
144
+ "type": "lookup",
145
+ "params": {
146
+ "from": "field4",
147
+ "read_lock": "exclusive",
148
+ "table": "lookup4",
149
+ "to": "keyspace_id"
150
+ },
151
+ "owner": "t1"
152
+ },
153
+ "lookup5": {
154
+ "type": "lookup",
155
+ "params": {
156
+ "from": "field5",
157
+ "read_lock": "shared",
158
+ "table": "lookup5",
159
+ "to": "keyspace_id"
160
+ },
161
+ "owner": "t1"
162
+ },
163
+ "lookup6": {
164
+ "type": "lookup",
165
+ "params": {
166
+ "from": "field6",
167
+ "read_lock": "none",
168
+ "table": "lookup6",
169
+ "to": "keyspace_id"
170
+ },
171
+ "owner": "t1"
121
172
}
122
173
},
123
174
"tables": {
@@ -138,6 +189,18 @@ CREATE TABLE thex (
138
189
{
139
190
"column": "field3",
140
191
"name": "lookup3"
192
+ },
193
+ {
194
+ "column": "field4",
195
+ "name": "lookup4"
196
+ },
197
+ {
198
+ "column": "field5",
199
+ "name": "lookup5"
200
+ },
201
+ {
202
+ "column": "field6",
203
+ "name": "lookup6"
141
204
}
142
205
]
143
206
},
@@ -165,6 +228,30 @@ CREATE TABLE thex (
165
228
}
166
229
]
167
230
},
231
+ "lookup4": {
232
+ "column_vindexes": [
233
+ {
234
+ "column": "field4",
235
+ "name": "binary_md5_vdx"
236
+ }
237
+ ]
238
+ },
239
+ "lookup5": {
240
+ "column_vindexes": [
241
+ {
242
+ "column": "field5",
243
+ "name": "binary_md5_vdx"
244
+ }
245
+ ]
246
+ },
247
+ "lookup6": {
248
+ "column_vindexes": [
249
+ {
250
+ "column": "field6",
251
+ "name": "binary_md5_vdx"
252
+ }
253
+ ]
254
+ },
168
255
"thex": {
169
256
"column_vindexes": [
170
257
{
@@ -245,51 +332,51 @@ func TestVindexBindVarOverlap(t *testing.T) {
245
332
require .Nil (t , err )
246
333
defer conn .Close ()
247
334
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" )
335
+ utils .Exec (t , conn , "INSERT INTO t1 (id, field, field2, field3, field4, field5, field6 ) VALUES " +
336
+ "(0,1,2,3,4,5,6 ), " +
337
+ "(1,2,3,4,5,6,7 ), " +
338
+ "(2,3,4,5,6,7,8 ), " +
339
+ "(3,4,5,6,7,8,9 ), " +
340
+ "(4,5,6,7,8,9,10 ), " +
341
+ "(5,6,7,8,9,10,11 ), " +
342
+ "(6,7,8,9,10,11,12 ), " +
343
+ "(7,8,9,10,11,12,13 ), " +
344
+ "(8,9,10,11,12,13,14 ), " +
345
+ "(9,10,11,12,13,14,15 ), " +
346
+ "(10,11,12,13,14,15,16 ), " +
347
+ "(11,12,13,14,15,16,17 ), " +
348
+ "(12,13,14,15,16,17,18 ), " +
349
+ "(13,14,15,16,17,18,19 ), " +
350
+ "(14,15,16,17,18,19,20 ), " +
351
+ "(15,16,17,18,19,20,21 ), " +
352
+ "(16,17,18,19,20,21,22 ), " +
353
+ "(17,18,19,20,21,22,23 ), " +
354
+ "(18,19,20,21,22,23,24 ), " +
355
+ "(19,20,21,22,23,24,25 ), " +
356
+ "(20,21,22,23,24,25,26 )" )
357
+ result := utils .Exec (t , conn , "select id, field, field2, field3, field4, field5, field6 from t1 order by id" )
271
358
272
359
expected :=
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)]]"
360
+ "[[INT64(0) INT64(1) INT64(2) INT64(3) INT64(4) INT64(5) INT64(6) ] " +
361
+ "[INT64(1) INT64(2) INT64(3) INT64(4) INT64(5) INT64(6) INT64(7) ] " +
362
+ "[INT64(2) INT64(3) INT64(4) INT64(5) INT64(6) INT64(7) INT64(8) ] " +
363
+ "[INT64(3) INT64(4) INT64(5) INT64(6) INT64(7) INT64(8) INT64(9) ] " +
364
+ "[INT64(4) INT64(5) INT64(6) INT64(7) INT64(8) INT64(9) INT64(10) ] " +
365
+ "[INT64(5) INT64(6) INT64(7) INT64(8) INT64(9) INT64(10) INT64(11) ] " +
366
+ "[INT64(6) INT64(7) INT64(8) INT64(9) INT64(10) INT64(11) INT64(12) ] " +
367
+ "[INT64(7) INT64(8) INT64(9) INT64(10) INT64(11) INT64(12) INT64(13) ] " +
368
+ "[INT64(8) INT64(9) INT64(10) INT64(11) INT64(12) INT64(13) INT64(14) ] " +
369
+ "[INT64(9) INT64(10) INT64(11) INT64(12) INT64(13) INT64(14) INT64(15) ] " +
370
+ "[INT64(10) INT64(11) INT64(12) INT64(13) INT64(14) INT64(15) INT64(16) ] " +
371
+ "[INT64(11) INT64(12) INT64(13) INT64(14) INT64(15) INT64(16) INT64(17) ] " +
372
+ "[INT64(12) INT64(13) INT64(14) INT64(15) INT64(16) INT64(17) INT64(18) ] " +
373
+ "[INT64(13) INT64(14) INT64(15) INT64(16) INT64(17) INT64(18) INT64(19) ] " +
374
+ "[INT64(14) INT64(15) INT64(16) INT64(17) INT64(18) INT64(19) INT64(20) ] " +
375
+ "[INT64(15) INT64(16) INT64(17) INT64(18) INT64(19) INT64(20) INT64(21) ] " +
376
+ "[INT64(16) INT64(17) INT64(18) INT64(19) INT64(20) INT64(21) INT64(22) ] " +
377
+ "[INT64(17) INT64(18) INT64(19) INT64(20) INT64(21) INT64(22) INT64(23) ] " +
378
+ "[INT64(18) INT64(19) INT64(20) INT64(21) INT64(22) INT64(23) INT64(24) ] " +
379
+ "[INT64(19) INT64(20) INT64(21) INT64(22) INT64(23) INT64(24) INT64(25) ] " +
380
+ "[INT64(20) INT64(21) INT64(22) INT64(23) INT64(24) INT64(25) INT64(26) ]]"
294
381
assert .Equal (t , expected , fmt .Sprintf ("%v" , result .Rows ))
295
382
}
0 commit comments