Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 27 additions & 6 deletions internal/commands/commands.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ import (
)

func MetaCommand(filename string) error {
reader, err := file.OpenParquetFile(filename, true)
reader, err := openParquetFile(filename)
if err != nil {
return fmt.Errorf("error opening parquet file: %w", err)
return err
}
defer reader.Close()

Expand All @@ -25,9 +25,9 @@ func MetaCommand(filename string) error {
}

func RowGroupsCommand(filename string, perPage int) error {
reader, err := file.OpenParquetFile(filename, true)
reader, err := openParquetFile(filename)
if err != nil {
return fmt.Errorf("error opening parquet file: %w", err)
return err
}
defer reader.Close()

Expand All @@ -45,7 +45,13 @@ func RowGroupsCommand(filename string, perPage int) error {
}

func HeadCommand(filename string, amount int) error {
headers, rows, err := parse.ReadRows(filename, amount)
reader, err := openParquetFile(filename)
if err != nil {
return err
}
defer reader.Close()

headers, rows, err := parse.ReadRows(reader, amount)
if err != nil {
return err
}
Expand All @@ -57,7 +63,13 @@ func HeadCommand(filename string, amount int) error {
}

func LessCommand(filename string, amount int) error {
headers, rows, err := parse.ReadRows(filename, amount)
reader, err := openParquetFile(filename)
if err != nil {
return err
}
defer reader.Close()

headers, rows, err := parse.ReadRows(reader, amount)
if err != nil {
return err
}
Expand All @@ -68,3 +80,12 @@ func LessCommand(filename string, amount int) error {

return visualize.ViewportCreator(header, content)
}

func openParquetFile(filename string) (*file.Reader, error) {
reader, err := file.OpenParquetFile(filename, true)
if err != nil {
return nil, fmt.Errorf("error opening parquet file: %w", err)
}

return reader, nil
}
8 changes: 1 addition & 7 deletions internal/parse/rowgroup_values.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,7 @@ import (
"golang.org/x/sync/errgroup"
)

func ReadRows(filename string, amount int) ([]string, [][]string, error) {
reader, err := file.OpenParquetFile(filename, true)
if err != nil {
return nil, nil, fmt.Errorf("error opening parquet file: %w", err)
}
defer reader.Close()

func ReadRows(reader *file.Reader, amount int) ([]string, [][]string, error) {
const rowGroupIndex = 0
firstRowGroup := reader.RowGroup(rowGroupIndex)

Expand Down
10 changes: 9 additions & 1 deletion internal/parse/rowgroup_values_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ package parse
import (
"slices"
"testing"

"github.com/apache/arrow-go/v18/parquet/file"
)

func Test_ReadRows(t *testing.T) {
Expand Down Expand Up @@ -40,7 +42,13 @@ func Test_ReadRows(t *testing.T) {

for _, tt := range testCases {
t.Run(tt.name, func(t *testing.T) {
headers, rows, err := ReadRows(tt.input.filename, tt.input.amount)
reader, err := file.OpenParquetFile(tt.input.filename, true)
if err != nil {
t.Fatalf("OpenParquetFile returned err: %v", err)
}
defer reader.Close()

headers, rows, err := ReadRows(reader, tt.input.amount)
if err != nil {
t.Errorf("ReadRows returned err: %v", err)
}
Expand Down