@@ -163,6 +163,7 @@ func TestBuildRangeInsertQuery(t *testing.T) {
163
163
databaseName := "mydb"
164
164
originalTableName := "tbl"
165
165
ghostTableName := "ghost"
166
+ whereClause := "1=1"
166
167
sharedColumns := []string {"id" , "name" , "position" }
167
168
{
168
169
uniqueKey := "PRIMARY"
@@ -172,7 +173,7 @@ func TestBuildRangeInsertQuery(t *testing.T) {
172
173
rangeStartArgs := []interface {}{3 }
173
174
rangeEndArgs := []interface {}{103 }
174
175
175
- query , explodedArgs , err := BuildRangeInsertQuery (databaseName , originalTableName , ghostTableName , sharedColumns , sharedColumns , uniqueKey , uniqueKeyColumns , rangeStartValues , rangeEndValues , rangeStartArgs , rangeEndArgs , true , false )
176
+ query , explodedArgs , err := BuildRangeInsertQuery (databaseName , originalTableName , ghostTableName , sharedColumns , sharedColumns , uniqueKey , uniqueKeyColumns , rangeStartValues , rangeEndValues , rangeStartArgs , rangeEndArgs , true , false , whereClause )
176
177
test .S (t ).ExpectNil (err )
177
178
expected := `
178
179
insert /* gh-ost mydb.tbl */ ignore
@@ -186,7 +187,7 @@ func TestBuildRangeInsertQuery(t *testing.T) {
186
187
force index (PRIMARY)
187
188
where
188
189
(((id > @v1s) or ((id = @v1s)))
189
- and ((id < @v1e) or ((id = @v1e))))
190
+ and ((id < @v1e) or ((id = @v1e))) and 1=1 )
190
191
)`
191
192
test .S (t ).ExpectEquals (normalizeQuery (query ), normalizeQuery (expected ))
192
193
test .S (t ).ExpectTrue (reflect .DeepEqual (explodedArgs , []interface {}{3 , 3 , 103 , 103 }))
@@ -199,7 +200,7 @@ func TestBuildRangeInsertQuery(t *testing.T) {
199
200
rangeStartArgs := []interface {}{3 , 17 }
200
201
rangeEndArgs := []interface {}{103 , 117 }
201
202
202
- query , explodedArgs , err := BuildRangeInsertQuery (databaseName , originalTableName , ghostTableName , sharedColumns , sharedColumns , uniqueKey , uniqueKeyColumns , rangeStartValues , rangeEndValues , rangeStartArgs , rangeEndArgs , true , false )
203
+ query , explodedArgs , err := BuildRangeInsertQuery (databaseName , originalTableName , ghostTableName , sharedColumns , sharedColumns , uniqueKey , uniqueKeyColumns , rangeStartValues , rangeEndValues , rangeStartArgs , rangeEndArgs , true , false , whereClause )
203
204
test .S (t ).ExpectNil (err )
204
205
expected := `
205
206
insert /* gh-ost mydb.tbl */ ignore
@@ -219,7 +220,7 @@ func TestBuildRangeInsertQuery(t *testing.T) {
219
220
and ((name < @v1e)
220
221
or (((name = @v1e))
221
222
AND (position < @v2e))
222
- or ((name = @v1e) and (position = @v2e))))
223
+ or ((name = @v1e) and (position = @v2e))) and 1=1 )
223
224
)`
224
225
test .S (t ).ExpectEquals (normalizeQuery (query ), normalizeQuery (expected ))
225
226
test .S (t ).ExpectTrue (reflect .DeepEqual (explodedArgs , []interface {}{3 , 3 , 17 , 3 , 17 , 103 , 103 , 117 , 103 , 117 }))
@@ -230,6 +231,7 @@ func TestBuildRangeInsertQueryRenameMap(t *testing.T) {
230
231
databaseName := "mydb"
231
232
originalTableName := "tbl"
232
233
ghostTableName := "ghost"
234
+ whereClause := "1=1"
233
235
sharedColumns := []string {"id" , "name" , "position" }
234
236
mappedSharedColumns := []string {"id" , "name" , "location" }
235
237
{
@@ -240,7 +242,7 @@ func TestBuildRangeInsertQueryRenameMap(t *testing.T) {
240
242
rangeStartArgs := []interface {}{3 }
241
243
rangeEndArgs := []interface {}{103 }
242
244
243
- query , explodedArgs , err := BuildRangeInsertQuery (databaseName , originalTableName , ghostTableName , sharedColumns , mappedSharedColumns , uniqueKey , uniqueKeyColumns , rangeStartValues , rangeEndValues , rangeStartArgs , rangeEndArgs , true , false )
245
+ query , explodedArgs , err := BuildRangeInsertQuery (databaseName , originalTableName , ghostTableName , sharedColumns , mappedSharedColumns , uniqueKey , uniqueKeyColumns , rangeStartValues , rangeEndValues , rangeStartArgs , rangeEndArgs , true , false , whereClause )
244
246
test .S (t ).ExpectNil (err )
245
247
expected := `
246
248
insert /* gh-ost mydb.tbl */ ignore
@@ -255,7 +257,7 @@ func TestBuildRangeInsertQueryRenameMap(t *testing.T) {
255
257
where
256
258
(((id > @v1s) or ((id = @v1s)))
257
259
and
258
- ((id < @v1e) or ((id = @v1e))))
260
+ ((id < @v1e) or ((id = @v1e))) and 1=1 )
259
261
)`
260
262
test .S (t ).ExpectEquals (normalizeQuery (query ), normalizeQuery (expected ))
261
263
test .S (t ).ExpectTrue (reflect .DeepEqual (explodedArgs , []interface {}{3 , 3 , 103 , 103 }))
@@ -268,7 +270,7 @@ func TestBuildRangeInsertQueryRenameMap(t *testing.T) {
268
270
rangeStartArgs := []interface {}{3 , 17 }
269
271
rangeEndArgs := []interface {}{103 , 117 }
270
272
271
- query , explodedArgs , err := BuildRangeInsertQuery (databaseName , originalTableName , ghostTableName , sharedColumns , mappedSharedColumns , uniqueKey , uniqueKeyColumns , rangeStartValues , rangeEndValues , rangeStartArgs , rangeEndArgs , true , false )
273
+ query , explodedArgs , err := BuildRangeInsertQuery (databaseName , originalTableName , ghostTableName , sharedColumns , mappedSharedColumns , uniqueKey , uniqueKeyColumns , rangeStartValues , rangeEndValues , rangeStartArgs , rangeEndArgs , true , false , whereClause )
272
274
test .S (t ).ExpectNil (err )
273
275
expected := `
274
276
insert /* gh-ost mydb.tbl */ ignore
@@ -284,7 +286,7 @@ func TestBuildRangeInsertQueryRenameMap(t *testing.T) {
284
286
(((name > @v1s) or (((name = @v1s))
285
287
AND (position > @v2s)) or ((name = @v1s) and (position = @v2s)))
286
288
and ((name < @v1e) or (((name = @v1e)) AND (position < @v2e))
287
- or ((name = @v1e) and (position = @v2e))))
289
+ or ((name = @v1e) and (position = @v2e))) and 1=1 )
288
290
)`
289
291
test .S (t ).ExpectEquals (normalizeQuery (query ), normalizeQuery (expected ))
290
292
test .S (t ).ExpectTrue (reflect .DeepEqual (explodedArgs , []interface {}{3 , 3 , 17 , 3 , 17 , 103 , 103 , 117 , 103 , 117 }))
@@ -295,14 +297,15 @@ func TestBuildRangeInsertPreparedQuery(t *testing.T) {
295
297
databaseName := "mydb"
296
298
originalTableName := "tbl"
297
299
ghostTableName := "ghost"
300
+ whereClause := "1=1"
298
301
sharedColumns := []string {"id" , "name" , "position" }
299
302
{
300
303
uniqueKey := "name_position_uidx"
301
304
uniqueKeyColumns := NewColumnList ([]string {"name" , "position" })
302
305
rangeStartArgs := []interface {}{3 , 17 }
303
306
rangeEndArgs := []interface {}{103 , 117 }
304
307
305
- query , explodedArgs , err := BuildRangeInsertPreparedQuery (databaseName , originalTableName , ghostTableName , sharedColumns , sharedColumns , uniqueKey , uniqueKeyColumns , rangeStartArgs , rangeEndArgs , true , true )
308
+ query , explodedArgs , err := BuildRangeInsertPreparedQuery (databaseName , originalTableName , ghostTableName , sharedColumns , sharedColumns , uniqueKey , uniqueKeyColumns , rangeStartArgs , rangeEndArgs , true , true , whereClause )
306
309
test .S (t ).ExpectNil (err )
307
310
expected := `
308
311
insert /* gh-ost mydb.tbl */ ignore
@@ -314,7 +317,7 @@ func TestBuildRangeInsertPreparedQuery(t *testing.T) {
314
317
from
315
318
mydb.tbl
316
319
force index (name_position_uidx)
317
- where (((name > ?) or (((name = ?)) AND (position > ?)) or ((name = ?) and (position = ?))) and ((name < ?) or (((name = ?)) AND (position < ?)) or ((name = ?) and (position = ?))))
320
+ where (((name > ?) or (((name = ?)) AND (position > ?)) or ((name = ?) and (position = ?))) and ((name < ?) or (((name = ?)) AND (position < ?)) or ((name = ?) and (position = ?))) and 1=1 )
318
321
lock in share mode
319
322
)`
320
323
test .S (t ).ExpectEquals (normalizeQuery (query ), normalizeQuery (expected ))
0 commit comments