Skip to content

Commit f7bd4b8

Browse files
committed
Fix source PKE handling
Signed-off-by: Matt Lord <mattalord@gmail.com>
1 parent 02b7f06 commit f7bd4b8

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

go/vt/vttablet/tabletmanager/vdiff/table_differ.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -829,7 +829,7 @@ func (td *tableDiffer) lastPKFromRow(row []sqltypes.Value) *tabletmanagerdatapb.
829829
pkColCnt := len(pkCols)
830830
pkFields := make([]*querypb.Field, pkColCnt)
831831
pkVals := make([]sqltypes.Value, pkColCnt)
832-
for i, colIndex := range td.tablePlan.pkCols {
832+
for i, colIndex := range pkCols {
833833
pkFields[i] = td.tablePlan.table.Fields[colIndex]
834834
pkVals[i] = row[colIndex]
835835
}
@@ -935,11 +935,16 @@ func (td *tableDiffer) getSourcePKCols() error {
935935
}
936936
return sqltypes.Proto3ToResult(res), nil
937937
}
938-
pkeCols, _, err := mysqlctl.GetPrimaryKeyEquivalentColumns(ctx, executeFetch, td.wd.ct.sourceKeyspace, td.table.Name)
938+
pkeCols, _, err := mysqlctl.GetPrimaryKeyEquivalentColumns(ctx, executeFetch, sourceTablet.DbName(), td.table.Name)
939939
if err != nil {
940940
return err
941941
}
942-
sourceTable.PrimaryKeyColumns = pkeCols
942+
if len(pkeCols) > 0 {
943+
sourceTable.PrimaryKeyColumns = pkeCols
944+
} else {
945+
// We use every column together as a substitute PK.
946+
sourceTable.PrimaryKeyColumns = append(sourceTable.PrimaryKeyColumns, td.table.Columns...)
947+
}
943948
}
944949
sourcePKColumns := make(map[string]struct{}, len(sourceTable.PrimaryKeyColumns))
945950
td.tablePlan.sourcePkCols = make([]int, 0, len(sourceTable.PrimaryKeyColumns))

0 commit comments

Comments
 (0)