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
18 changes: 18 additions & 0 deletions c_glib/parquet-glib/arrow-file-reader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,24 @@ gparquet_arrow_file_reader_new_path(const gchar *path, GError **error)
}
}

/**
* gparquet_arrow_file_reader_close:
* @reader: A #GParquetArrowFileReader.
*
* Close the reader.
*
* Since: 23.0.0
*/
void
gparquet_arrow_file_reader_close(GParquetArrowFileReader *reader)
{
auto parquet_arrow_file_reader = gparquet_arrow_file_reader_get_raw(reader);
auto parquet_reader = parquet_arrow_file_reader->parquet_reader();
if (parquet_reader) {
parquet_reader->Close();
}
}

/**
* gparquet_arrow_file_reader_read_table:
* @reader: A #GParquetArrowFileReader.
Expand Down
4 changes: 4 additions & 0 deletions c_glib/parquet-glib/arrow-file-reader.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,10 @@ GPARQUET_AVAILABLE_IN_0_11
GParquetArrowFileReader *
gparquet_arrow_file_reader_new_path(const gchar *path, GError **error);

GPARQUET_AVAILABLE_IN_23_0
void
gparquet_arrow_file_reader_close(GParquetArrowFileReader *reader);

GPARQUET_AVAILABLE_IN_0_11
GArrowTable *
gparquet_arrow_file_reader_read_table(GParquetArrowFileReader *reader, GError **error);
Expand Down
1 change: 1 addition & 0 deletions ruby/red-arrow/test/test-feather.rb
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ def setup
begin
yield(@output)
ensure
GC.start # Ensure freeing Arrow::Table that refers @output.path.
@output.close!
end
end
Expand Down
4 changes: 4 additions & 0 deletions ruby/red-arrow/test/test-record-batch-stream-reader.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@
# under the License.

class RecordBatchStreamReaderTest < Test::Unit::TestCase
def teardown
GC.start # Ensure freeing Arrow::RecordBatch that refers tempfile.path.
end

test("write/read") do
fields = [
Arrow::Field.new("uint8", :uint8),
Expand Down
4 changes: 4 additions & 0 deletions ruby/red-arrow/test/test-table.rb
Original file line number Diff line number Diff line change
Expand Up @@ -747,6 +747,10 @@ def create_output(extension)
@file.path
end

def teardown
GC.start # Ensure freeing Arrow::Table that refers @file.path.
end

sub_test_case("save: auto detect") do
test("arrow") do
output = create_output(".arrow")
Expand Down
2 changes: 2 additions & 0 deletions ruby/red-parquet/lib/parquet/arrow-file-reader.rb
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@

module Parquet
class ArrowFileReader
include Arrow::BlockClosable

def each_row_group
return to_enum(__method__) {n_row_groups} unless block_given?

Expand Down
2 changes: 2 additions & 0 deletions ruby/red-parquet/lib/parquet/arrow-file-writer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@

module Parquet
class ArrowFileWriter
include Arrow::BlockClosable

# Write data to Apache Parquet.
#
# @return [void]
Expand Down
1 change: 1 addition & 0 deletions ruby/red-parquet/test/test-arrow-table.rb
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ def setup
begin
yield(@output)
ensure
GC.start # Ensure freeing Arrow::Table that refers @output.path.
@output.close!
end
end
Expand Down
25 changes: 16 additions & 9 deletions ruby/red-parquet/test/test-boolean-statistics.rb
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,22 @@

class TestBooleanStatistics < Test::Unit::TestCase
def setup
file = Tempfile.open(["data", ".parquet"])
array = Arrow::BooleanArray.new([nil, false, true])
table = Arrow::Table.new("boolean" => array)
writer = Parquet::ArrowFileWriter.new(table.schema, file.path)
chunk_size = 1024
writer.write_table(table, chunk_size)
writer.close
reader = Parquet::ArrowFileReader.new(file.path)
@statistics = reader.metadata.get_row_group(0).get_column_chunk(0).statistics
Tempfile.create(["data", ".parquet"]) do |file|
array = Arrow::BooleanArray.new([nil, false, true])
table = Arrow::Table.new("boolean" => array)
Parquet::ArrowFileWriter.open(table.schema, file.path) do |writer|
chunk_size = 1024
writer.write_table(table, chunk_size)
writer.close
end
Parquet::ArrowFileReader.open(file.path) do |reader|
@statistics =
reader.metadata.get_row_group(0).get_column_chunk(0).statistics
yield
@statistics = nil
end
GC.start # Ensure freeing @statistics that refers file.path.
end
end

def test_min
Expand Down
Loading