11package plugin
22
33import (
4- "encoding/base64"
54 "fmt"
65 "strings"
76
@@ -14,35 +13,6 @@ func RecordsDiff(sc *arrow.Schema, have, want []arrow.Record) string {
1413 return TableDiff (array .NewTableFromRecords (sc , have ), array .NewTableFromRecords (sc , want ))
1514}
1615
17- func getUnifiedDiff (edits array.Edits , wantCol , haveCol arrow.Array ) string {
18- defer func () {
19- if r := recover (); r != nil {
20- wantDataType := wantCol .DataType ()
21- wantData := make ([]byte , wantCol .Len ())
22- for _ , buffer := range wantCol .Data ().Buffers () {
23- buf := buffer .Buf ()
24- if len (buf ) > 0 {
25- wantData = append (wantData , buf ... )
26- }
27- }
28- haveDataType := haveCol .DataType ()
29- haveData := make ([]byte , haveCol .Len ())
30- for _ , buffer := range haveCol .Data ().Buffers () {
31- buf := buffer .Buf ()
32- if len (buf ) > 0 {
33- haveData = append (haveData , buf ... )
34- }
35- }
36-
37- wantBase64 := base64 .StdEncoding .EncodeToString (wantData )
38- haveBase64 := base64 .StdEncoding .EncodeToString (haveData )
39-
40- panic (fmt .Errorf ("panic in getUnifiedDiff: %s, want: (%s), have: (%s), want type: %s, have type: %s" , r , wantBase64 , haveBase64 , wantDataType , haveDataType ))
41- }
42- }()
43- return edits .UnifiedDiff (wantCol , haveCol )
44- }
45-
4616func TableDiff (have , want arrow.Table ) string {
4717 if array .TableApproxEqual (have , want , array .WithUnorderedMapKeys (true )) {
4818 return ""
@@ -69,7 +39,7 @@ func TableDiff(have, want arrow.Table) string {
6939 if err != nil {
7040 panic (fmt .Errorf ("want: %v, have: %v, error: %w" , wantCol .DataType (), haveCol .DataType (), err ))
7141 }
72- diff := getUnifiedDiff ( edits , wantCol , haveCol )
42+ diff := edits . UnifiedDiff ( wantCol , haveCol )
7343 if diff != "" {
7444 sb .WriteString (have .Schema ().Field (i ).Name )
7545 sb .WriteString (": " )
0 commit comments