Skip to content

Commit 079f1c0

Browse files
author
Shlomi Noach
committed
Merge pull request #40 from github/fix-single-row-copy
Fixing single-row table migration
2 parents 45371d9 + 9f56a84 commit 079f1c0

File tree

4 files changed

+9
-4
lines changed

4 files changed

+9
-4
lines changed

build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/bash
22
#
33
#
4-
RELEASE_VERSION="0.7.3"
4+
RELEASE_VERSION="0.7.4"
55

66
buildpath=/tmp/gh-ost
77
target=gh-ost

go/logic/applier.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -374,6 +374,7 @@ func (this *Applier) CalculateNextIterationRangeEndValues() (hasFurtherRange boo
374374
this.migrationContext.MigrationIterationRangeMinValues.AbstractValues(),
375375
this.migrationContext.MigrationRangeMaxValues.AbstractValues(),
376376
this.migrationContext.ChunkSize,
377+
this.migrationContext.GetIteration() == 0,
377378
fmt.Sprintf("iteration:%d", this.migrationContext.GetIteration()),
378379
)
379380
if err != nil {

go/sql/builder.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,14 +204,18 @@ func BuildRangeInsertPreparedQuery(databaseName, originalTableName, ghostTableNa
204204
return BuildRangeInsertQuery(databaseName, originalTableName, ghostTableName, sharedColumns, uniqueKey, uniqueKeyColumns, rangeStartValues, rangeEndValues, rangeStartArgs, rangeEndArgs, includeRangeStartValues, transactionalTable)
205205
}
206206

207-
func BuildUniqueKeyRangeEndPreparedQuery(databaseName, tableName string, uniqueKeyColumns []string, rangeStartArgs, rangeEndArgs []interface{}, chunkSize int64, hint string) (result string, explodedArgs []interface{}, err error) {
207+
func BuildUniqueKeyRangeEndPreparedQuery(databaseName, tableName string, uniqueKeyColumns []string, rangeStartArgs, rangeEndArgs []interface{}, chunkSize int64, includeRangeStartValues bool, hint string) (result string, explodedArgs []interface{}, err error) {
208208
if len(uniqueKeyColumns) == 0 {
209209
return "", explodedArgs, fmt.Errorf("Got 0 columns in BuildUniqueKeyRangeEndPreparedQuery")
210210
}
211211
databaseName = EscapeName(databaseName)
212212
tableName = EscapeName(tableName)
213213

214-
rangeStartComparison, rangeExplodedArgs, err := BuildRangePreparedComparison(uniqueKeyColumns, rangeStartArgs, GreaterThanComparisonSign)
214+
var startRangeComparisonSign ValueComparisonSign = GreaterThanComparisonSign
215+
if includeRangeStartValues {
216+
startRangeComparisonSign = GreaterThanOrEqualsComparisonSign
217+
}
218+
rangeStartComparison, rangeExplodedArgs, err := BuildRangePreparedComparison(uniqueKeyColumns, rangeStartArgs, startRangeComparisonSign)
215219
if err != nil {
216220
return "", explodedArgs, err
217221
}

go/sql/builder_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ func TestBuildUniqueKeyRangeEndPreparedQuery(t *testing.T) {
237237
rangeStartArgs := []interface{}{3, 17}
238238
rangeEndArgs := []interface{}{103, 117}
239239

240-
query, explodedArgs, err := BuildUniqueKeyRangeEndPreparedQuery(databaseName, originalTableName, uniqueKeyColumns, rangeStartArgs, rangeEndArgs, chunkSize, "test")
240+
query, explodedArgs, err := BuildUniqueKeyRangeEndPreparedQuery(databaseName, originalTableName, uniqueKeyColumns, rangeStartArgs, rangeEndArgs, chunkSize, false, "test")
241241
test.S(t).ExpectNil(err)
242242
expected := `
243243
select /* gh-ost mydb.tbl test */ name, position

0 commit comments

Comments
 (0)