Skip to content

Commit

Permalink
Add missing Close call in WriteRowGroup (xitongsys#420)
Browse files Browse the repository at this point in the history
  • Loading branch information
asubiotto committed Dec 2, 2022
1 parent 0a0fad0 commit b835743
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 1 deletion.
25 changes: 25 additions & 0 deletions row_group_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package parquet_test

import (
"bytes"
"io"
"reflect"
"sort"
"testing"
Expand Down Expand Up @@ -421,3 +422,27 @@ func TestMergeRowGroups(t *testing.T) {
})
}
}

func TestWriteRowGroupClosesRows(t *testing.T) {
var rows []*wrappedRows
rg := wrappedRowGroup{
RowGroup: newPeopleFile([]Person{{}}),
rowsCallback: func(r parquet.Rows) parquet.Rows {
wrapped := &wrappedRows{Rows: r}
rows = append(rows, wrapped)
return wrapped
},
}
writer := parquet.NewWriter(io.Discard)
if _, err := writer.WriteRowGroup(rg); err != nil {
t.Fatal(err)
}
if err := writer.Close(); err != nil {
t.Fatal(err)
}
for _, r := range rows {
if !r.closed {
t.Fatal("rows not closed")
}
}
}
4 changes: 3 additions & 1 deletion writer.go
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,9 @@ func (w *Writer) WriteRowGroup(rowGroup RowGroup) (int64, error) {
return 0, err
}
w.writer.configureBloomFilters(rowGroup.ColumnChunks())
n, err := CopyRows(w.writer, rowGroup.Rows())
rows := rowGroup.Rows()
defer rows.Close()
n, err := CopyRows(w.writer, rows)
if err != nil {
return n, err
}
Expand Down

0 comments on commit b835743

Please sign in to comment.