@@ -335,34 +335,11 @@ func (v *InlineVerifier) CheckFingerprintInline(tx *sql.Tx, targetSchema, target
335335
336336 paginationKeys := make ([]interface {}, len (sourceBatch .Values ()))
337337 for i , row := range sourceBatch .Values () {
338- switch paginationColumn .Type {
339- case schema .TYPE_NUMBER , schema .TYPE_MEDIUM_INT :
340- paginationKeyUint , err := row .GetUint64 (sourceBatch .PaginationKeyIndex ())
341- if err != nil {
342- return nil , err
343- }
344- paginationKeys [i ] = paginationKeyUint
345-
346- case schema .TYPE_BINARY , schema .TYPE_STRING :
347- paginationKeyInterface := row [sourceBatch .PaginationKeyIndex ()]
348- var paginationKeyBytes []byte
349- switch v := paginationKeyInterface .(type ) {
350- case []byte :
351- paginationKeyBytes = v
352- case string :
353- paginationKeyBytes = []byte (v )
354- default :
355- return nil , fmt .Errorf ("expected binary/string pagination key, got %T" , paginationKeyInterface )
356- }
357- paginationKeys [i ] = paginationKeyBytes
358-
359- default :
360- paginationKeyUint , err := row .GetUint64 (sourceBatch .PaginationKeyIndex ())
361- if err != nil {
362- return nil , err
363- }
364- paginationKeys [i ] = paginationKeyUint
338+ paginationKey , err := NewPaginationKeyFromRow (row , sourceBatch .PaginationKeyIndex (), paginationColumn )
339+ if err != nil {
340+ return nil , err
365341 }
342+ paginationKeys [i ] = paginationKey .SQLValue ()
366343 }
367344
368345 // Fetch target data
@@ -376,36 +353,11 @@ func (v *InlineVerifier) CheckFingerprintInline(tx *sql.Tx, targetSchema, target
376353 sourceDecompressedData := make (map [string ]map [string ][]byte )
377354
378355 for _ , rowData := range sourceBatch .Values () {
379- var paginationKeyStr string
380-
381- switch paginationColumn .Type {
382- case schema .TYPE_NUMBER , schema .TYPE_MEDIUM_INT :
383- paginationKeyUint , err := rowData .GetUint64 (sourceBatch .PaginationKeyIndex ())
384- if err != nil {
385- return nil , err
386- }
387- paginationKeyStr = NewUint64Key (paginationKeyUint ).String ()
388-
389- case schema .TYPE_BINARY , schema .TYPE_STRING :
390- paginationKeyInterface := rowData [sourceBatch .PaginationKeyIndex ()]
391- var paginationKeyBytes []byte
392- switch v := paginationKeyInterface .(type ) {
393- case []byte :
394- paginationKeyBytes = v
395- case string :
396- paginationKeyBytes = []byte (v )
397- default :
398- return nil , fmt .Errorf ("expected binary/string pagination key, got %T" , paginationKeyInterface )
399- }
400- paginationKeyStr = NewBinaryKey (paginationKeyBytes ).String ()
401-
402- default :
403- paginationKeyUint , err := rowData .GetUint64 (sourceBatch .PaginationKeyIndex ())
404- if err != nil {
405- return nil , err
406- }
407- paginationKeyStr = NewUint64Key (paginationKeyUint ).String ()
356+ paginationKey , err := NewPaginationKeyFromRow (rowData , sourceBatch .PaginationKeyIndex (), paginationColumn )
357+ if err != nil {
358+ return nil , err
408359 }
360+ paginationKeyStr := paginationKey .String ()
409361
410362 sourceDecompressedData [paginationKeyStr ] = make (map [string ][]byte )
411363 for idx , col := range table .Columns {
0 commit comments