@@ -335,6 +335,9 @@ func BuildRangeInsertQuery(databaseName, originalTableName, ghostTableName strin
335335}
336336
337337func sameFirstColumnValue (rangeStartArgs , rangeEndArgs []interface {}) bool {
338+ if len (rangeStartArgs ) == 0 || len (rangeEndArgs ) == 0 {
339+ return false
340+ }
338341 return fmt .Sprintf ("%v" , rangeStartArgs [0 ]) == fmt .Sprintf ("%v" , rangeEndArgs [0 ])
339342}
340343
@@ -621,6 +624,9 @@ func buildUniqueKeyRangeEndTwoColumnViaOffset(
621624 hint string ,
622625) (result string , explodedArgs []interface {}, err error ) {
623626 m := newTwoColumnRangeMeta (uniqueKeyColumns )
627+ if len (rangeStartArgs ) != 2 || len (rangeEndArgs ) != 2 {
628+ return "" , nil , fmt .Errorf ("expected 2 range args in buildUniqueKeyRangeEndTwoColumnViaOffset, got %d start and %d end" , len (rangeStartArgs ), len (rangeEndArgs ))
629+ }
624630 col2StartOp := string (startRangeComparisonSign )
625631 selectClause := m .col1Name + ", " + m .col2Name
626632 fromClause := databaseName + "." + tableName
@@ -684,6 +690,9 @@ func buildUniqueKeyRangeEndTwoColumnViaTemptable(
684690 hint string ,
685691) (result string , explodedArgs []interface {}, err error ) {
686692 m := newTwoColumnRangeMeta (uniqueKeyColumns )
693+ if len (rangeStartArgs ) != 2 || len (rangeEndArgs ) != 2 {
694+ return "" , nil , fmt .Errorf ("expected 2 range args in buildUniqueKeyRangeEndTwoColumnViaTemptable, got %d start and %d end" , len (rangeStartArgs ), len (rangeEndArgs ))
695+ }
687696 col2StartOp := string (startRangeComparisonSign )
688697 selectClause := m .col1Name + ", " + m .col2Name
689698 fromClause := databaseName + "." + tableName
0 commit comments