Repository: arrow
Updated Branches:
  refs/heads/master 637584bec -> 214b861ae


ARROW-283: [C++] Account for upstream changes in parquet-cpp

Author: Wes McKinney <wes.mckin...@twosigma.com>

Closes #131 from wesm/ARROW-283 and squashes the following commits:

52dfb28 [Wes McKinney] Update arrow_parquet for API changes in parquet-cpp


Project: http://git-wip-us.apache.org/repos/asf/arrow/repo
Commit: http://git-wip-us.apache.org/repos/asf/arrow/commit/214b861a
Tree: http://git-wip-us.apache.org/repos/asf/arrow/tree/214b861a
Diff: http://git-wip-us.apache.org/repos/asf/arrow/diff/214b861a

Branch: refs/heads/master
Commit: 214b861ae8f40f5fba544247d40c8995b93eca83
Parents: 637584b
Author: Wes McKinney <wes.mckin...@twosigma.com>
Authored: Wed Sep 7 00:20:51 2016 -0400
Committer: Wes McKinney <wes.mckin...@twosigma.com>
Committed: Wed Sep 7 00:20:51 2016 -0400

----------------------------------------------------------------------
 cpp/src/arrow/parquet/reader.cc | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/arrow/blob/214b861a/cpp/src/arrow/parquet/reader.cc
----------------------------------------------------------------------
diff --git a/cpp/src/arrow/parquet/reader.cc b/cpp/src/arrow/parquet/reader.cc
index 9f62125..440ec84 100644
--- a/cpp/src/arrow/parquet/reader.cc
+++ b/cpp/src/arrow/parquet/reader.cc
@@ -149,11 +149,13 @@ bool FileReader::Impl::CheckForFlatColumn(const 
::parquet::ColumnDescriptor* des
 }
 
 Status FileReader::Impl::GetFlatColumn(int i, 
std::unique_ptr<FlatColumnReader>* out) {
-  if (!CheckForFlatColumn(reader_->descr()->Column(i))) {
+  const ::parquet::SchemaDescriptor* schema = 
reader_->metadata()->schema_descriptor();
+
+  if (!CheckForFlatColumn(schema->Column(i))) {
     return Status::Invalid("The requested column is not flat");
   }
   std::unique_ptr<FlatColumnReader::Impl> impl(
-      new FlatColumnReader::Impl(pool_, reader_->descr()->Column(i), 
reader_.get(), i));
+      new FlatColumnReader::Impl(pool_, schema->Column(i), reader_.get(), i));
   *out = std::unique_ptr<FlatColumnReader>(new 
FlatColumnReader(std::move(impl)));
   return Status::OK();
 }
@@ -161,16 +163,20 @@ Status FileReader::Impl::GetFlatColumn(int i, 
std::unique_ptr<FlatColumnReader>*
 Status FileReader::Impl::ReadFlatColumn(int i, std::shared_ptr<Array>* out) {
   std::unique_ptr<FlatColumnReader> flat_column_reader;
   RETURN_NOT_OK(GetFlatColumn(i, &flat_column_reader));
-  return flat_column_reader->NextBatch(reader_->num_rows(), out);
+  return flat_column_reader->NextBatch(reader_->metadata()->num_rows(), out);
 }
 
 Status FileReader::Impl::ReadFlatTable(std::shared_ptr<Table>* table) {
-  const std::string& name = reader_->descr()->schema()->name();
+  auto descr = reader_->metadata()->schema_descriptor();
+
+  const std::string& name = descr->schema()->name();
   std::shared_ptr<Schema> schema;
-  RETURN_NOT_OK(FromParquetSchema(reader_->descr(), &schema));
+  RETURN_NOT_OK(FromParquetSchema(descr, &schema));
+
+  int num_columns = reader_->metadata()->num_columns();
 
-  std::vector<std::shared_ptr<Column>> columns(reader_->num_columns());
-  for (int i = 0; i < reader_->num_columns(); i++) {
+  std::vector<std::shared_ptr<Column>> columns(num_columns);
+  for (int i = 0; i < num_columns; i++) {
     std::shared_ptr<Array> array;
     RETURN_NOT_OK(ReadFlatColumn(i, &array));
     columns[i] = std::make_shared<Column>(schema->field(i), array);
@@ -375,7 +381,7 @@ Status FlatColumnReader::Impl::NextBatch(int batch_size, 
std::shared_ptr<Array>*
 }
 
 void FlatColumnReader::Impl::NextRowGroup() {
-  if (next_row_group_ < reader_->num_row_groups()) {
+  if (next_row_group_ < reader_->metadata()->num_row_groups()) {
     column_reader_ = reader_->RowGroup(next_row_group_)->Column(column_index_);
     next_row_group_++;
   } else {

Reply via email to