Skip to content

Commit

Permalink
Update R and GLib
Browse files Browse the repository at this point in the history
  • Loading branch information
wesm committed Apr 7, 2020
1 parent 6dc6d5e commit e0e7678
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 22 deletions.
10 changes: 4 additions & 6 deletions c_glib/arrow-glib/reader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -507,13 +507,11 @@ garrow_record_batch_file_reader_read_record_batch(GArrowRecordBatchFileReader *r
GError **error)
{
auto arrow_reader = garrow_record_batch_file_reader_get_raw(reader);
std::shared_ptr<arrow::RecordBatch> arrow_record_batch;
auto status = arrow_reader->ReadRecordBatch(i, &arrow_record_batch);
auto arrow_record_batch = arrow_reader->ReadRecordBatch(i);

if (garrow_error_check(error,
status,
"[record-batch-file-reader][read-record-batch]")) {
return garrow_record_batch_new_raw(&arrow_record_batch);
if (garrow::check(error, arrow_record_batch,
"[record-batch-file-reader][read-record-batch]")) {
return garrow_record_batch_new_raw(&(*arrow_record_batch));
} else {
return NULL;
}
Expand Down
2 changes: 1 addition & 1 deletion cpp/src/arrow/ipc/writer.h
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ Status SerializeRecordBatch(const RecordBatch& batch, const IpcWriteOptions& opt
ARROW_EXPORT
Result<std::shared_ptr<Buffer>> SerializeSchema(const Schema& schema,
DictionaryMemo* dictionary_memo,
MemoryPool* pool);
MemoryPool* pool = default_memory_pool());

/// \brief Write multiple record batches to OutputStream, including schema
/// \param[in] batches a vector of batches. Must all have same schema
Expand Down
8 changes: 2 additions & 6 deletions r/src/message.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -89,17 +89,13 @@ std::unique_ptr<arrow::ipc::MessageReader> ipc___MessageReader__Open(
// [[arrow::export]]
std::unique_ptr<arrow::ipc::Message> ipc___MessageReader__ReadNextMessage(
const std::unique_ptr<arrow::ipc::MessageReader>& reader) {
std::unique_ptr<arrow::ipc::Message> message;
STOP_IF_NOT_OK(reader->ReadNextMessage(&message));
return message;
return VALUE_OR_STOP(reader->ReadNextMessage());
}

// [[arrow::export]]
std::unique_ptr<arrow::ipc::Message> ipc___ReadMessage(
const std::shared_ptr<arrow::io::InputStream>& stream) {
std::unique_ptr<arrow::ipc::Message> message;
STOP_IF_NOT_OK(arrow::ipc::ReadMessage(stream.get(), &message));
return message;
return VALUE_OR_STOP(arrow::ipc::ReadMessage(stream.get()));
}

#endif
11 changes: 5 additions & 6 deletions r/src/recordbatchreader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -75,11 +75,10 @@ int ipc___RecordBatchFileReader__num_record_batches(
// [[arrow::export]]
std::shared_ptr<arrow::RecordBatch> ipc___RecordBatchFileReader__ReadRecordBatch(
const std::shared_ptr<arrow::ipc::RecordBatchFileReader>& reader, int i) {
std::shared_ptr<arrow::RecordBatch> batch;
if (i >= 0 && i < reader->num_record_batches()) {
STOP_IF_NOT_OK(reader->ReadRecordBatch(i, &batch));
if (i < 0 && i >= reader->num_record_batches()) {
Rcpp::stop("Record batch index out of bounds");
}
return batch;
return VALUE_OR_STOP(reader->ReadRecordBatch(i));
}

// [[arrow::export]]
Expand All @@ -95,7 +94,7 @@ std::shared_ptr<arrow::Table> Table__from_RecordBatchFileReader(
int num_batches = reader->num_record_batches();
std::vector<std::shared_ptr<arrow::RecordBatch>> batches(num_batches);
for (int i = 0; i < num_batches; i++) {
STOP_IF_NOT_OK(reader->ReadRecordBatch(i, &batches[i]));
batches[i] = VALUE_OR_STOP(reader->ReadRecordBatch(i));
}

std::shared_ptr<arrow::Table> table;
Expand Down Expand Up @@ -128,7 +127,7 @@ std::vector<std::shared_ptr<arrow::RecordBatch>> ipc___RecordBatchFileReader__ba
std::vector<std::shared_ptr<arrow::RecordBatch>> res(n);

for (int i = 0; i < n; i++) {
STOP_IF_NOT_OK(reader->ReadRecordBatch(i, &res[i]));
res[i] = VALUE_OR_STOP(reader->ReadRecordBatch(i));
}

return res;
Expand Down
5 changes: 2 additions & 3 deletions r/src/schema.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -84,9 +84,8 @@ std::shared_ptr<arrow::Schema> Schema__WithMetadata(
// [[arrow::export]]
Rcpp::RawVector Schema__serialize(const std::shared_ptr<arrow::Schema>& schema) {
arrow::ipc::DictionaryMemo empty_memo;
std::shared_ptr<arrow::Buffer> out;
STOP_IF_NOT_OK(arrow::ipc::SerializeSchema(*schema, &empty_memo,
arrow::default_memory_pool(), &out));
std::shared_ptr<arrow::Buffer> out =
VALUE_OR_STOP(arrow::ipc::SerializeSchema(*schema, &empty_memo));

auto n = out->size();
Rcpp::RawVector vec(out->size());
Expand Down

0 comments on commit e0e7678

Please sign in to comment.