Skip to content

Commit a49053f

Browse files
Do not lock rows when copying.
1 parent 48cb9ab commit a49053f

File tree

2 files changed

+11
-17
lines changed

2 files changed

+11
-17
lines changed

go/sql/builder.go

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ func BuildRangePreparedComparison(columns *ColumnList, args []interface{}, compa
182182
return BuildRangeComparison(columns.Names(), values, args, comparisonSign)
183183
}
184184

185-
func BuildRangeInsertQuery(databaseName, originalTableName, ghostTableName string, sharedColumns []string, mappedSharedColumns []string, uniqueKey string, uniqueKeyColumns *ColumnList, rangeStartValues, rangeEndValues []string, rangeStartArgs, rangeEndArgs []interface{}, includeRangeStartValues bool, transactionalTable bool) (result string, explodedArgs []interface{}, err error) {
185+
func BuildRangeInsertQuery(databaseName, originalTableName, ghostTableName string, sharedColumns []string, mappedSharedColumns []string, uniqueKey string, uniqueKeyColumns *ColumnList, rangeStartValues, rangeEndValues []string, rangeStartArgs, rangeEndArgs []interface{}, includeRangeStartValues bool) (result string, explodedArgs []interface{}, err error) {
186186
if len(sharedColumns) == 0 {
187187
return "", explodedArgs, fmt.Errorf("Got 0 shared columns in BuildRangeInsertQuery")
188188
}
@@ -217,10 +217,6 @@ func BuildRangeInsertQuery(databaseName, originalTableName, ghostTableName strin
217217
return "", explodedArgs, err
218218
}
219219
explodedArgs = append(explodedArgs, rangeExplodedArgs...)
220-
transactionalClause := ""
221-
if transactionalTable {
222-
transactionalClause = "lock in share mode"
223-
}
224220
result = fmt.Sprintf(`
225221
insert /* gh-ost %s.%s */ ignore
226222
into
@@ -233,18 +229,17 @@ func BuildRangeInsertQuery(databaseName, originalTableName, ghostTableName strin
233229
force index (%s)
234230
where
235231
(%s and %s)
236-
%s
237232
)`,
238233
databaseName, originalTableName, databaseName, ghostTableName, mappedSharedColumnsListing,
239234
sharedColumnsListing, databaseName, originalTableName, uniqueKey,
240-
rangeStartComparison, rangeEndComparison, transactionalClause)
235+
rangeStartComparison, rangeEndComparison)
241236
return result, explodedArgs, nil
242237
}
243238

244-
func BuildRangeInsertPreparedQuery(databaseName, originalTableName, ghostTableName string, sharedColumns []string, mappedSharedColumns []string, uniqueKey string, uniqueKeyColumns *ColumnList, rangeStartArgs, rangeEndArgs []interface{}, includeRangeStartValues bool, transactionalTable bool) (result string, explodedArgs []interface{}, err error) {
239+
func BuildRangeInsertPreparedQuery(databaseName, originalTableName, ghostTableName string, sharedColumns []string, mappedSharedColumns []string, uniqueKey string, uniqueKeyColumns *ColumnList, rangeStartArgs, rangeEndArgs []interface{}, includeRangeStartValues bool) (result string, explodedArgs []interface{}, err error) {
245240
rangeStartValues := buildColumnsPreparedValues(uniqueKeyColumns)
246241
rangeEndValues := buildColumnsPreparedValues(uniqueKeyColumns)
247-
return BuildRangeInsertQuery(databaseName, originalTableName, ghostTableName, sharedColumns, mappedSharedColumns, uniqueKey, uniqueKeyColumns, rangeStartValues, rangeEndValues, rangeStartArgs, rangeEndArgs, includeRangeStartValues, transactionalTable)
242+
return BuildRangeInsertQuery(databaseName, originalTableName, ghostTableName, sharedColumns, mappedSharedColumns, uniqueKey, uniqueKeyColumns, rangeStartValues, rangeEndValues, rangeStartArgs, rangeEndArgs, includeRangeStartValues)
248243
}
249244

250245
func BuildUniqueKeyRangeEndPreparedQueryViaOffset(databaseName, tableName string, uniqueKeyColumns *ColumnList, rangeStartArgs, rangeEndArgs []interface{}, chunkSize int64, includeRangeStartValues bool, hint string) (result string, explodedArgs []interface{}, err error) {

go/sql/builder_test.go

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ func TestBuildRangeInsertQuery(t *testing.T) {
172172
rangeStartArgs := []interface{}{3}
173173
rangeEndArgs := []interface{}{103}
174174

175-
query, explodedArgs, err := BuildRangeInsertQuery(databaseName, originalTableName, ghostTableName, sharedColumns, sharedColumns, uniqueKey, uniqueKeyColumns, rangeStartValues, rangeEndValues, rangeStartArgs, rangeEndArgs, true, false)
175+
query, explodedArgs, err := BuildRangeInsertQuery(databaseName, originalTableName, ghostTableName, sharedColumns, sharedColumns, uniqueKey, uniqueKeyColumns, rangeStartValues, rangeEndValues, rangeStartArgs, rangeEndArgs, true)
176176
test.S(t).ExpectNil(err)
177177
expected := `
178178
insert /* gh-ost mydb.tbl */ ignore
@@ -199,7 +199,7 @@ func TestBuildRangeInsertQuery(t *testing.T) {
199199
rangeStartArgs := []interface{}{3, 17}
200200
rangeEndArgs := []interface{}{103, 117}
201201

202-
query, explodedArgs, err := BuildRangeInsertQuery(databaseName, originalTableName, ghostTableName, sharedColumns, sharedColumns, uniqueKey, uniqueKeyColumns, rangeStartValues, rangeEndValues, rangeStartArgs, rangeEndArgs, true, false)
202+
query, explodedArgs, err := BuildRangeInsertQuery(databaseName, originalTableName, ghostTableName, sharedColumns, sharedColumns, uniqueKey, uniqueKeyColumns, rangeStartValues, rangeEndValues, rangeStartArgs, rangeEndArgs, true)
203203
test.S(t).ExpectNil(err)
204204
expected := `
205205
insert /* gh-ost mydb.tbl */ ignore
@@ -240,14 +240,14 @@ func TestBuildRangeInsertQueryRenameMap(t *testing.T) {
240240
rangeStartArgs := []interface{}{3}
241241
rangeEndArgs := []interface{}{103}
242242

243-
query, explodedArgs, err := BuildRangeInsertQuery(databaseName, originalTableName, ghostTableName, sharedColumns, mappedSharedColumns, uniqueKey, uniqueKeyColumns, rangeStartValues, rangeEndValues, rangeStartArgs, rangeEndArgs, true, false)
243+
query, explodedArgs, err := BuildRangeInsertQuery(databaseName, originalTableName, ghostTableName, sharedColumns, mappedSharedColumns, uniqueKey, uniqueKeyColumns, rangeStartValues, rangeEndValues, rangeStartArgs, rangeEndArgs, true)
244244
test.S(t).ExpectNil(err)
245245
expected := `
246246
insert /* gh-ost mydb.tbl */ ignore
247247
into
248248
mydb.ghost
249249
(id, name, location)
250-
(
250+
(
251251
select id, name, position
252252
from
253253
mydb.tbl
@@ -268,7 +268,7 @@ func TestBuildRangeInsertQueryRenameMap(t *testing.T) {
268268
rangeStartArgs := []interface{}{3, 17}
269269
rangeEndArgs := []interface{}{103, 117}
270270

271-
query, explodedArgs, err := BuildRangeInsertQuery(databaseName, originalTableName, ghostTableName, sharedColumns, mappedSharedColumns, uniqueKey, uniqueKeyColumns, rangeStartValues, rangeEndValues, rangeStartArgs, rangeEndArgs, true, false)
271+
query, explodedArgs, err := BuildRangeInsertQuery(databaseName, originalTableName, ghostTableName, sharedColumns, mappedSharedColumns, uniqueKey, uniqueKeyColumns, rangeStartValues, rangeEndValues, rangeStartArgs, rangeEndArgs, true)
272272
test.S(t).ExpectNil(err)
273273
expected := `
274274
insert /* gh-ost mydb.tbl */ ignore
@@ -302,7 +302,7 @@ func TestBuildRangeInsertPreparedQuery(t *testing.T) {
302302
rangeStartArgs := []interface{}{3, 17}
303303
rangeEndArgs := []interface{}{103, 117}
304304

305-
query, explodedArgs, err := BuildRangeInsertPreparedQuery(databaseName, originalTableName, ghostTableName, sharedColumns, sharedColumns, uniqueKey, uniqueKeyColumns, rangeStartArgs, rangeEndArgs, true, true)
305+
query, explodedArgs, err := BuildRangeInsertPreparedQuery(databaseName, originalTableName, ghostTableName, sharedColumns, sharedColumns, uniqueKey, uniqueKeyColumns, rangeStartArgs, rangeEndArgs, true)
306306
test.S(t).ExpectNil(err)
307307
expected := `
308308
insert /* gh-ost mydb.tbl */ ignore
@@ -315,7 +315,6 @@ func TestBuildRangeInsertPreparedQuery(t *testing.T) {
315315
mydb.tbl
316316
force index (name_position_uidx)
317317
where (((name > ?) or (((name = ?)) AND (position > ?)) or ((name = ?) and (position = ?))) and ((name < ?) or (((name = ?)) AND (position < ?)) or ((name = ?) and (position = ?))))
318-
lock in share mode
319318
)`
320319
test.S(t).ExpectEquals(normalizeQuery(query), normalizeQuery(expected))
321320
test.S(t).ExpectTrue(reflect.DeepEqual(explodedArgs, []interface{}{3, 3, 17, 3, 17, 103, 103, 117, 103, 117}))
@@ -335,7 +334,7 @@ func TestBuildUniqueKeyRangeEndPreparedQuery(t *testing.T) {
335334
test.S(t).ExpectNil(err)
336335
expected := `
337336
select /* gh-ost mydb.tbl test */ name, position
338-
from (
337+
from (
339338
select
340339
name, position
341340
from

0 commit comments

Comments
 (0)