2 months agoIncrementing snapshot version to 1.5.1-SNAPSHOT. master
Uwe L. Korn [Wed, 29 Aug 2018 14:56:14 +0000 (16:56 +0200)] 
Incrementing snapshot version to 1.5.1-SNAPSHOT.

2 months agoUpdating CHANGELOG for 1.5.0 release.
Uwe L. Korn [Wed, 29 Aug 2018 14:56:14 +0000 (16:56 +0200)] 
Updating CHANGELOG for 1.5.0 release.

3 months agoError if user tries to build from master
Wes McKinney [Tue, 18 Sep 2018 20:38:43 +0000 (16:38 -0400)] 
Error if user tries to build from master

3 months agoAdd
Wes McKinney [Sun, 9 Sep 2018 19:23:49 +0000 (15:23 -0400)] 

3 months agoUpdate repository README and add after monorepo merge
Wes McKinney [Sun, 9 Sep 2018 19:21:29 +0000 (15:21 -0400)] 
Update repository README and add after monorepo merge

3 months agoPARQUET-1372: Add an API to allow writing RowGroups based on size
Deepak Majeti [Sat, 25 Aug 2018 11:33:35 +0000 (13:33 +0200)] 
PARQUET-1372:  Add an API to allow writing RowGroups based on size

I split the changes into multiple commits to ease the review.
Used the example program to test the new API.
I will add unit tests once we converge on the API after review.
Thanks to @anatolishein for collaborating with the API design.

Author: Deepak Majeti <>

Closes #484 from majetideepak/PARQUET-1372 and squashes the following commits:

143ed51 [Deepak Majeti] improve comments
c10fe08 [Deepak Majeti] Add test
d12b10b [Deepak Majeti] Review comments
cb99b3f [Deepak Majeti] fix compiler warnings
e179a4c [Deepak Majeti] add example header
710bbe0 [Deepak Majeti] clang format
9e03004 [Deepak Majeti] reorg examples
410a3af [Deepak Majeti] remove flush_on_close
e148817 [Deepak Majeti] add BufferedPageWriter
26a52c1 [Deepak Majeti] clang format
20049c0 [Deepak Majeti] modify examples
9db26a2 [Deepak Majeti] Combine RowGroupWriter2 with RowGroupWriter
cb7d69c [Deepak Majeti] fix compiler errors
21642b3 [Deepak Majeti] clang format
530b835 [Deepak Majeti] example for RowGroupWriter2
0fc1f5c [Deepak Majeti] Extend Column Writer to flush pages on Close
f2f420d [Deepak Majeti] RowGroupWriter2, implementation that writes all columns at once

3 months agoPARQUET-1392: Read multiple RowGroups at once into an Arrow table
Korn, Uwe [Thu, 23 Aug 2018 13:17:08 +0000 (15:17 +0200)] 
PARQUET-1392: Read multiple RowGroups at once into an Arrow table

Decided to go with the more simplistic approach and only introduce a convenience API for now. Once is merged, I'll do some work that at least primitive arrays are read into a single Array in this path.

Author: Korn, Uwe <>

Closes #492 from xhochy/PARQUET-1392 and squashes the following commits:

e0ad006 [Korn, Uwe] Preallocate tables vector
94c7246 [Korn, Uwe] Read multiple RowGroups at once into an Arrow table

3 months agoPARQUET-1276: [C++] Reduce the amount of memory used for writing null decimal values
Antoine Pitrou [Mon, 20 Aug 2018 15:42:54 +0000 (11:42 -0400)] 
PARQUET-1276: [C++] Reduce the amount of memory used for writing null decimal values

Initial patch by @cpcloud

Supersedes PR

Author: Antoine Pitrou <>

Closes #493 from pitrou/PARQUET-1276-arrow-decimal-memory-consumption and squashes the following commits:

fd2df09 [Antoine Pitrou] PARQUET-1276: [C++] Reduce the amount of memory used for writing null decimal values

4 months agoPARQUET-1256: Add --print-key-value-metadata option to parquet_reader tool
Jacek Pliszka [Fri, 17 Aug 2018 21:52:29 +0000 (17:52 -0400)] 
PARQUET-1256: Add --print-key-value-metadata option to parquet_reader tool

This is a minor change useful for debugging.

Now parquet_reader tool has --print-key-value-metadata which when present, dump of key values of file metadata is done.


Author: Jacek Pliszka <>

Closes #450 from JacekPliszka/master and squashes the following commits:

0d9a108 [Jacek Pliszka] Added --print-key-value-metadata option to parquet_reader tool

4 months agoPARQUET-1384: fix clang build error for
Chen, Junjie [Fri, 17 Aug 2018 16:56:15 +0000 (12:56 -0400)] 
PARQUET-1384: fix clang build error for


Author: Chen, Junjie <>

Closes #490 from cjjnjust/parquet-1384 and squashes the following commits:

31afdd8 [Chen, Junjie] PARQUET-1384: fix clang build error for

4 months agoPARQUET-1382: [C++] Prepare for arrow::test namespace removal
Antoine Pitrou [Fri, 17 Aug 2018 14:10:09 +0000 (10:10 -0400)] 
PARQUET-1382: [C++] Prepare for arrow::test namespace removal

Also tried to make Travis-CI builds faster.

Author: Antoine Pitrou <>

Closes #487 from pitrou/PARQUET-1382-arrow-test-namespace-shim and squashes the following commits:

2c169ec [Antoine Pitrou] Fix conda-forge brotli version, also exit early if conda fails
d47cde0 [Antoine Pitrou] Try to fix AppVeyor toolchain build
24a012a [Antoine Pitrou] Make tests a bit faster with Valgrind
180d32d [Antoine Pitrou] Only run with Valgrind in a single configuration
f87efb2 [Antoine Pitrou] Re-enable test verbosity, because of Valgrind slowness
625e62d [Antoine Pitrou] Try to silence deprecation warnings
8aff555 [Antoine Pitrou] Try to silence deprecation errors on gcc / clang
ec0297c [Antoine Pitrou] Bump Arrow changeset
5022828 [Antoine Pitrou] PARQUET-1382: [C++] Prepare for arrow::test namespace removal

4 months agoPARQUET-1308: [C++] Use Arrow thread pool, not Arrow ParallelFor, fix deprecated...
Wes McKinney [Fri, 17 Aug 2018 06:25:50 +0000 (02:25 -0400)] 
PARQUET-1308: [C++] Use Arrow thread pool, not Arrow ParallelFor, fix deprecated APIs, upgrade clang-format version. Fix record delimiting bug

Author: Wes McKinney <>
Author: Antoine Pitrou <>
Author: Wes McKinney <>

Closes #467 from pitrou/PARQUET-1308-arrow-thread-pool and squashes the following commits:

cab1aa8 [Wes McKinney] Fix deprecation warning
b23bc46 [Wes McKinney] Fix end of row group logic
8fbff2e [Wes McKinney] Fix record delimiting bug
c2bc1c8 [Wes McKinney] Print offending value
3e72282 [Wes McKinney] Find minimal repro that fails on Linux also
1f4f714 [Wes McKinney] Add temporary testing code
a2eea67 [Wes McKinney] Fix usages of deprecated APIs, upgrade to clang-format-6.0
45779a9 [Wes McKinney] Update Arrow external project version to master
2c06321 [Antoine Pitrou] Fix API name
5707f60 [Antoine Pitrou] Lint
e90a902 [Antoine Pitrou] PARQUET-1308: [C++] Use Arrow thread pool, not Arrow ParallelFor

4 months agoPARQUET-1378: Allow RowGroups with zero rows to be written
Deepak Majeti [Wed, 15 Aug 2018 13:03:56 +0000 (09:03 -0400)] 
PARQUET-1378: Allow RowGroups with zero rows to be written

Author: Deepak Majeti <>

Closes #485 from majetideepak/PARQUET-1378 and squashes the following commits:

a4db300 [Deepak Majeti] Parquet-1378: Allow RowGroups with zero rows to be written

4 months agoPARQUET-1332: Add bloom filter for parquet
Chen, Junjie [Wed, 15 Aug 2018 12:57:27 +0000 (08:57 -0400)] 
PARQUET-1332: Add bloom filter for parquet

This is first part of bloom filter patch set, which include a bloom filter utility and also some unit tests.
Note that this patch also includes murmur3Hash original code from Austin Appleby. The code isn't formatted as parquet-cpp format.

Author: Chen, Junjie <>

Closes #432 from cjjnjust/master and squashes the following commits:

d4d3018 [Chen, Junjie] PARQUET-1332: update constructor
b0f3f80 [Chen, Junjie] PARQUET-1332: update code for some coding style
fe97b44 [Chen, Junjie] PARQUET-1332: refine the complex classes
fd3ba23 [Chen, Junjie] PARQUET-1332: fix build error for clang Xcode
019322a [Chen, Junjie] PARQUET-1332: refine bloom filter algorithm
ec6a6e9 [Chen, Junjie] PARQUET-1332: fix build failure for windows platform
0c1e95f [Chen, Junjie] PARQUET-1332: update according to latest comments
1a105fc [Chen, Junjie] PARQUET-1332: update code according to Jim's comments
731191c [Chen, Junjie] PARQUET-1332: rebase to latest to solve CI error and update comments
0bc8595 [Chen, Junjie] PARQUET-1332: use abstract class for hash class
1374665 [Chen, Junjie] PARQUET-1332: update according to code review
858b2ce [Chen, Junjie] PARQUET-1332: remove unnecessary const_cast
23d7ccf [Chen, Junjie] PARQUET-1332: add missing file
f2ff8ad [Chen, Junjie] PARQUET-1332: Add bloom filter utility class

4 months agoPARQUET-1301: [C++] Crypto package in parquet-cpp
Gidon Gershinsky [Sat, 4 Aug 2018 22:40:49 +0000 (18:40 -0400)] 
PARQUET-1301: [C++] Crypto package in parquet-cpp

Author: Gidon Gershinsky <>

Closes #464 from ggershinsky/p1301-crypto-package and squashes the following commits:

42fe125 [Gidon Gershinsky] post-review changes
ad17fbe [Gidon Gershinsky] fix lint issues
b5e40b1 [Gidon Gershinsky] post-review changes
20b496f [Gidon Gershinsky] EncryptionProperties input and other review changes
35a4830 [Gidon Gershinsky] fix import order
b3affc5 [Gidon Gershinsky] change import order
fc5d77d [Gidon Gershinsky] version fix
a11507e [Gidon Gershinsky] 2nd cipher + review comments
63fa9a3 [Gidon Gershinsky] version fix
8e384d4 [Gidon Gershinsky] The C++ implementation of basic AES-GCM encryption and decryption

4 months agoPARQUET-1366: [C++] Streamline use of Arrow's bit-util.h APIs
Antoine Pitrou [Wed, 1 Aug 2018 19:14:15 +0000 (15:14 -0400)] 
PARQUET-1366: [C++] Streamline use of Arrow's bit-util.h APIs

This is required before we can remove some duplicate or little-used APIs in ARROW-2950.

Author: Antoine Pitrou <>

Closes #483 from pitrou/PARQUET-1366-arrow-bit-util and squashes the following commits:

1eb6ef0 [Antoine Pitrou] Avoid using FirstTimeBitmapWriter for now (this Arrow API is too recent)
57aa82c [Antoine Pitrou] Fix line size
86c4ca5 [Antoine Pitrou] PARQUET-1366: [C++] Streamline use of Arrow bit-util.h

4 months agoPARQUET-1357: FormatStatValue truncates binary statistics on zero character
Korn, Uwe [Wed, 1 Aug 2018 13:34:32 +0000 (15:34 +0200)] 
PARQUET-1357: FormatStatValue truncates binary statistics on zero character

Author: Korn, Uwe <>

Closes #479 from xhochy/PARQUET-1357 and squashes the following commits:

4135976 [Korn, Uwe] Add macro for deprecations
e0e4946 [Korn, Uwe] Update to clang-format 6.0
0073b56 [Korn, Uwe] PARQUET-1357: FormatStatValue truncates binary statistics on zero character

4 months agoPARQUET-1227: Thrift crypto metadata structures
Gidon Gershinsky [Tue, 31 Jul 2018 03:29:09 +0000 (23:29 -0400)] 
PARQUET-1227: Thrift crypto metadata structures

Author: Gidon Gershinsky <>

Closes #463 from ggershinsky/p1227-thrift-crypto-metadata and squashes the following commits:

579c319 [Gidon Gershinsky] enums -> unions
d07d708 [Gidon Gershinsky] bug fix
ee4b931 [Gidon Gershinsky] multiple keys and ciphers
8d0c179 [Gidon Gershinsky] New Thrift structures for Parquet modular encryption

4 months agoPARQUET-1360: Use conforming API style, variable names in WriteFileMetaData functions
Wes McKinney [Sun, 29 Jul 2018 23:57:00 +0000 (19:57 -0400)] 
PARQUET-1360: Use conforming API style, variable names in WriteFileMetaData functions

Per comments in PARQUET-1348. I also upgraded clang-format to 6.0 here so pardon the diff noise from that.

To summarize the style points:

* Don't pass `const std:shared_ptr<T>&` if `const T&` will do
* Don't pass `const std::shared_ptr<T>&` if `T*` will do
* I prefer to only use class static function members for alternate constructors
* Out arguments after in arguments
* `lower_with_underscores` for variable names

Author: Wes McKinney <>

Closes #482 from wesm/PARQUET-1360 and squashes the following commits:

375a442 [Wes McKinney] API conformity and changes per review comments in ARROW-1348

4 months agoPARQUET-1348: Add ability to write FileMetaData in arrow FileWriter
Robert Gruener [Sat, 28 Jul 2018 15:21:11 +0000 (17:21 +0200)] 
PARQUET-1348: Add ability to write FileMetaData in arrow FileWriter

I used static functions since there was no better way I could see

Author: Robert Gruener <>

Closes #481 from rgruener/write-metadata and squashes the following commits:

bdd5ec1 [Robert Gruener] PARQUET-1348: Add ability to write FileMetaData in arrow FileWriter

4 months agoPARQUET-1358: index_page_offset should be unset as it is not supported
Korn, Uwe [Thu, 26 Jul 2018 21:12:11 +0000 (23:12 +0200)] 
PARQUET-1358: index_page_offset should be unset as it is not supported

Author: Korn, Uwe <>

Closes #480 from xhochy/PARQUET-1358 and squashes the following commits:

dcf9a94 [Korn, Uwe] PARQUET-1358: index_page_offset should be unset as it is not supported

4 months agoPARQUET-1323: Fix compiler warnings on clang-6
Wes McKinney [Tue, 24 Jul 2018 01:14:39 +0000 (21:14 -0400)] 
PARQUET-1323: Fix compiler warnings on clang-6

The `schema_descr_` field was unused

Author: Wes McKinney <>

Closes #478 from wesm/clang-6-warnings and squashes the following commits:

7cadfab [Wes McKinney] Fix compiler warnings on clang-6

4 months agoPARQUET-1350: [C++] Use abstract ResizableBuffer instead of concrete PoolBuffer
Antoine Pitrou [Mon, 23 Jul 2018 18:29:11 +0000 (14:29 -0400)] 
PARQUET-1350: [C++] Use abstract ResizableBuffer instead of concrete PoolBuffer

Author: Antoine Pitrou <>

Closes #477 from pitrou/PARQUET-1350-pool-buffer and squashes the following commits:

3af304e [Antoine Pitrou] Fix linting
6ffc72d [Antoine Pitrou] PARQUET-1350: [C++] Use abstract ResizableBuffer instead of concrete PoolBuffer

5 months agoPARQUET-1349: [C++] PARQUET_RPATH_ORIGIN is not picked by the build
Korn, Uwe [Sat, 14 Jul 2018 19:57:35 +0000 (15:57 -0400)] 
PARQUET-1349: [C++] PARQUET_RPATH_ORIGIN is not picked by the build

The previous implementation did not work correctly. Using now the same code as in Arrow.

Author: Korn, Uwe <>

Closes #476 from xhochy/PARQUET-1349 and squashes the following commits:

1acb1b7 [Korn, Uwe] PARQUET-1349: [C++] PARQUET_RPATH_ORIGIN is not picked by the build

5 months agoPARQUET-1346: [C++] Protect against empty Arrow arrays with null values
Antoine Pitrou [Thu, 12 Jul 2018 06:39:53 +0000 (08:39 +0200)] 
PARQUET-1346: [C++] Protect against empty Arrow arrays with null values

Author: Antoine Pitrou <>

Closes #474 from pitrou/PARQUET-1346-null-values and squashes the following commits:

08bad23 [Antoine Pitrou] Do not ignore return value
a1c0378 [Antoine Pitrou] Fix uninitialized value
dfb42d2 [Antoine Pitrou] Try to fix lint
b514d0d [Antoine Pitrou] Try to fix compile failures on Travis-CI (due to old Arrow?)
3951f25 [Antoine Pitrou] PARQUET-1346: [C++] Protect against empty Arrow arrays with null values

5 months agoPARQUET-1333: [C++] Reading of files with dictionary size 0 fails on Windows with...
Philipp Hoch [Thu, 28 Jun 2018 15:27:39 +0000 (11:27 -0400)] 
PARQUET-1333: [C++] Reading of files with dictionary size 0 fails on Windows with bad_alloc

The call with size 0 ends up in arrows memory_pool,, and the according allocation fails. See according documentation, Only happens on Windows environment, as posix_memalign seems to handle 0 inputs in unix environments.

Author: Philipp Hoch <>

Closes #472 from philhoch/bugfix-cover-empty-dicitionary-size-on-windows and squashes the following commits:

0be10bc [Philipp Hoch] account for total_size being 0, as _alligned_malloc with size 0 raises error on Windows environment

5 months agoPARQUET-1334: [C++] memory_map parameter seems missleading in parquet file opener
Philipp Hoch [Thu, 28 Jun 2018 15:23:24 +0000 (11:23 -0400)] 
PARQUET-1334: [C++] memory_map parameter seems missleading in parquet file opener

If memory_map parameter is true, normal file operation is executed, while in negative case, the according memory mapped file operation happens. Seems either be used via inverted logic or being bug.

Author: Philipp Hoch <>

Closes #471 from philhoch/bugfix-mixed-up-memory-map-parameter and squashes the following commits:

651cf6b [Philipp Hoch] switched logic within conditional to support memory mapped behavior if requested and readable file accordingly

5 months agoPARQUET-1340: Fix Travis Ci valgrind errors related to std::random_de…
Deepak Majeti [Thu, 28 Jun 2018 15:20:54 +0000 (11:20 -0400)] 
PARQUET-1340: Fix Travis Ci valgrind errors related to std::random_de…

Followed fix from

Author: Deepak Majeti <>

Closes #473 from majetideepak/PARQUET-1340 and squashes the following commits:

fcd6f2d [Deepak Majeti] add cast
7193d43 [Deepak Majeti] PARQUET-1340: Fix Travis Ci valgrind errors related to std::random_device

6 months agoPARQUET-1319: Pass BISON_EXECUTABLE to Thrift EP for MacOS
thamht4190 [Thu, 14 Jun 2018 13:38:39 +0000 (15:38 +0200)] 
PARQUET-1319: Pass BISON_EXECUTABLE to Thrift EP for MacOS

Author: thamht4190 <>
Author: gubee <>

Closes #470 from thamht4190/PARQUET-1319 and squashes the following commits:

d8ced13 [thamht4190] PARQUET-1319: Pass BISON_EXECUTABLE to Thrift EP for MacOS
da9c86b [gubee] Merge pull request #1 from apache/master

6 months agoPARQUET-1313: [C++] Fix gtest build failure on Windows
Antoine Pitrou [Thu, 31 May 2018 10:39:30 +0000 (12:39 +0200)] 
PARQUET-1313: [C++] Fix gtest build failure on Windows

Also add an option to enable clcache if found.

Author: Antoine Pitrou <>

Closes #468 from pitrou/PARQUET-1313-msvc-gtest-warnings and squashes the following commits:

7aefdcf [Antoine Pitrou] Enable a VS2017 build on AppVeyor
1c3a78e [Antoine Pitrou] PARQUET-1313: [C++] Fix gtest build failure on Windows

6 months agoPARQUET-1315: ColumnChunkMetaData.has_dictionary_page() should return…
Deepak Majeti [Thu, 31 May 2018 10:38:41 +0000 (12:38 +0200)] 
PARQUET-1315: ColumnChunkMetaData.has_dictionary_page() should return…

… bool, not int64_t

Author: Deepak Majeti <>

Closes #469 from majetideepak/PARQUET-1315 and squashes the following commits:

dac446e [Deepak Majeti] PARQUET-1315: ColumnChunkMetaData.has_dictionary_page() should return bool, not int64_t

6 months agoPARQUET-1307: Fix memory-test for newer Arrow
Antoine Pitrou [Sat, 26 May 2018 14:34:36 +0000 (16:34 +0200)] 
PARQUET-1307: Fix memory-test for newer Arrow

In recent Arrow builds, ReadAt() doesn't specify whether it updates the file position or not.

(ideally, it does not, but on certain platforms the file position may be updated anyway -- e.g. Windows)

Author: Antoine Pitrou <>

Closes #466 from pitrou/PARQUET-1307-memory-test-fix and squashes the following commits:

ffd6dc0 [Antoine Pitrou] PARQUET-1307: Fix memory-test for newer Arrow

6 months agoPARQUET-979: Limit size of min, max or disable stats for long binary types
Deepak Majeti [Mon, 21 May 2018 03:19:03 +0000 (23:19 -0400)] 
PARQUET-979: Limit size of min, max or disable stats for long binary types

Author: Deepak Majeti <>

Closes #465 from majetideepak/PARQUET-979 and squashes the following commits:

3b18173 [Deepak Majeti] improve naming and ColumnProperties class
a888aa4 [Deepak Majeti] Add an option to specify max stats size
c103c4f [Deepak Majeti] make format
cf0260c [Deepak Majeti] PARQUET-979: [C++] Limit size of min, max or disable stats for long binary types

7 months agoPARQUET-1283: [C++] Remove trailing space for string and int96 statis…
Julius Neuffer [Tue, 1 May 2018 10:51:01 +0000 (12:51 +0200)] 
PARQUET-1283: [C++] Remove trailing space for string and int96 statis…


Prevent the function FormatStatValue from adding a trailing space
to the formatted statistics of strings and int96.

Author: Julius Neuffer <>

Closes #461 from jneuff/remove-trailing-space and squashes the following commits:

612e24c [Julius Neuffer] PARQUET-1283: [C++] Remove trailing space for string and int96 statistics

7 months agoPARQUET-1279: [C++] Adding use of ASSERT_NO_FATAL_FAILURE in unit tests when calling...
Joshua Storck [Mon, 23 Apr 2018 20:51:32 +0000 (22:51 +0200)] 
PARQUET-1279: [C++] Adding use of ASSERT_NO_FATAL_FAILURE in unit tests when calling helper functions that call ASSERT_ macros

There were a number of helper functions in the unit tests that has ASSERT_ macros. However, the callers of these functions were not asserting if the helper functions had encountered an assertion. In those circumstances, the unit test will continue because the ASSERT_ macros only return in the block in which they are used. This commit adds the use of ASSERT_NO_FATAL_FAILURE to the calls of those helper functions at the scope of the unit test, which will cause the unit test to exit. This ensures that we won't encounter segfaults or unexpected behavior due to a unit test continuing execution past an asserting inside of a helper function.

Author: Joshua Storck <>

Closes #458 from joshuastorck/use_assert_no_fatal_failure and squashes the following commits:

fa89f5d [Joshua Storck] There were a number of helper functions in the unit tests that has ASSERT_ macros. However, the callers of these functions were not asserting if the helper functions had encountered an assertion. In those circumstances, the unit test will continue because the ASSERT_ macros only return in the block in which they are used. This commit adds the use of ASSERT_NO_FATAL_FAILURE to the calls of those helper functions at the scope of the unit test, which will cause the unit test to exit. This ensures that we won't encounter segfaults or unexpected behavior due to a unit test continuing execution past an asserting inside of a helper function.

7 months agoPARQUET-1262: Use the same BOOST_ROOT and Boost_NAMESPACE for Thrift
Korn, Uwe [Mon, 23 Apr 2018 14:45:22 +0000 (10:45 -0400)] 
PARQUET-1262: Use the same BOOST_ROOT and Boost_NAMESPACE for Thrift

Author: Korn, Uwe <>

Closes #460 from xhochy/PARQUET-1262 and squashes the following commits:

2a886ce [Korn, Uwe] PARQUET-1262: Use the same BOOST_ROOT and Boost_NAMESPACE for Thrift

8 months agoPARQUET-1272: Return correct row count for nested columns in ScanFileContents
Korn, Uwe [Wed, 18 Apr 2018 11:04:26 +0000 (13:04 +0200)] 
PARQUET-1272: Return correct row count for nested columns in ScanFileContents

Stumbled over this while adding lists to the `alltypes_sample` in `` in Arrow.

Author: Korn, Uwe <>

Closes #457 from xhochy/PARQUET-1272 and squashes the following commits:

45efe1c [Korn, Uwe] PARQUET-1272: Return correct row count for nested columns in ScanFileContents

8 months agoPARQUET-1274: Prevent segfault that was occurring when writing a nanosecond timestamp...
Joshua Storck [Wed, 18 Apr 2018 10:55:23 +0000 (12:55 +0200)] 
PARQUET-1274: Prevent segfault that was occurring when writing a nanosecond timestamp with arrow writer properties set to coerce timestamps and support deprecated int96 timestamps.

The bug was a due to the fact that the physical type was int64 but the WriteTimestamps function was taking a path that assumed the physical type was int96. This caused memory corruption because it was writing past the end of the array. The bug was fixed by checking that coerce timestamps is disabled when writing int96.

A unit test was added for the regression.

Author: Joshua Storck <>

Closes #456 from joshuastorck/ARROW_2082 and squashes the following commits:

5fa0a94 [Joshua Storck] Removing 'using ::arrow' in favor of using ::arrow::SomeType
9725ecc [Joshua Storck] Bug fix for ARROW-2082, in which a segfault was being encountered when writing a nanosecond timestamp column with arrow writer properties set to coerce timestamps and support deprecated int96 timestamps. The bug was a segfault due to the fact that the physical type was int64 but the WriteTimestamps function was taking a path that assumed the physical type was int96. The bug was fixed by checking that coerce timestamps is disabled when writing int96. A unit test was added for the regression

8 months agoPARQUET-1273: Properly write dictionary values when writing in chunks
Joshua Storck [Wed, 18 Apr 2018 08:09:14 +0000 (10:09 +0200)] 
PARQUET-1273: Properly write dictionary values when writing in chunks

The error was reported here:

Because dictionary types are not supported in writing yet, the code converts the dictionary column to the actual values first before writing. However, the existing code was accidentally using zero as the offset and the length of the column as the size. This resulted in writing all of the column values for each chunk of the column that was supposed to be written.

The fix is to pass the offset and size when recursively calling through to WriteColumnChunk with the "flattened" data.

Author: Joshua Storck <>

Closes #453 from joshuastorck/ARROW_1938 and squashes the following commits:

c2af50f [Joshua Storck] Remove extraneous semicolon in unit test
23f5722 [Joshua Storck] Ran clang-format on
314b159 [Joshua Storck] Removing print statements from AssertTableEqual
f0bc71a [Joshua Storck] Fixing bug reported in, namely preventing all of the values in a dictionary column from being written to parquet for each chunk created as a result of specifying row_group_size

8 months agoPARQUET-1270: Install executable tools
Antoine Pitrou [Tue, 17 Apr 2018 17:08:31 +0000 (19:08 +0200)] 
PARQUET-1270: Install executable tools

"parquet_reader" and friends should be installed along with the Parquet libraries.

Author: Antoine Pitrou <>

Closes #455 from pitrou/PARQUET-1270-install-tools and squashes the following commits:

44c486c [Antoine Pitrou] PARQUET-1270: Install executable tools

8 months agoPARQUET-1268: Fix conversion of null list Arrow arrays
Antoine Pitrou [Tue, 17 Apr 2018 17:07:43 +0000 (19:07 +0200)] 
PARQUET-1268: Fix conversion of null list Arrow arrays

Author: Antoine Pitrou <>

Closes #454 from pitrou/PARQUET-1268-null-list-conversion and squashes the following commits:

e4e7744 [Antoine Pitrou] PARQUET-1268: Fix conversion of null list Arrow arrays

8 months agoPARQUET-1267: [C++] replace "unsafe" std::equal by std::memcmp
rip.nsk [Tue, 17 Apr 2018 17:03:16 +0000 (19:03 +0200)] 
PARQUET-1267: [C++] replace "unsafe" std::equal by std::memcmp

Author: rip.nsk <>

Closes #451 from rip-nsk/PARQUET-1267 and squashes the following commits:

12d2386 [rip.nsk] fix of the fix.
7682c83 [rip.nsk] PARQUET-1267: [C++] replace "unsafe" std::equal by std::memcmp

8 months agoPARQUET-1265: Segfault on static ApplicationVersion initialization
Deepak Majeti [Thu, 12 Apr 2018 21:09:37 +0000 (17:09 -0400)] 
PARQUET-1265: Segfault on static ApplicationVersion initialization

Author: Deepak Majeti <>

Closes #452 from majetideepak/PARQUET-1265 and squashes the following commits:

2972197 [Deepak Majeti] fix initialization error
ab07a47 [Deepak Majeti] Simplify construction of static variables
b23d3b3 [Deepak Majeti] PARQUET-1265: Segfault on static ApplicationVersion initialization

8 months agoPARQUET-1255: Fix error message when PARQUET_TEST_DATA isn't defined
Antoine Pitrou [Wed, 28 Mar 2018 16:19:53 +0000 (18:19 +0200)] 
PARQUET-1255: Fix error message when PARQUET_TEST_DATA isn't defined

Author: Antoine Pitrou <>

Closes #448 from pitrou/PARQUET-1255 and squashes the following commits:

b162511 [Antoine Pitrou] PARQUET-1255: Fix error message when PARQUET_TEST_DATA isn't defined

8 months agoPARQUET-1071: Check that arrow::FileWriter::Close() is idempotent
Antoine Pitrou [Wed, 28 Mar 2018 16:18:33 +0000 (18:18 +0200)] 
PARQUET-1071: Check that arrow::FileWriter::Close() is idempotent

Author: Antoine Pitrou <>

Closes #449 from pitrou/PARQUET-1071-arrow-filewriter-close-idempotent and squashes the following commits:

8c3fb19 [Antoine Pitrou] PARQUET-1071: Check that arrow::FileWriter::Close() is idempotent

8 months agoPARQUET-1166: Add GetRecordBatchReader in parquet/arrow/reader
Xianjin YE [Fri, 23 Mar 2018 20:03:31 +0000 (16:03 -0400)] 
PARQUET-1166: Add GetRecordBatchReader in parquet/arrow/reader

Author: Xianjin YE <>

Closes #445 from advancedxy/PARQUET-1166 and squashes the following commits:

03461ed [Xianjin YE] Add comments and auto-formatted code.
0abbb78 [Xianjin YE] declare next_row_group_ as size_t
f947668 [Xianjin YE] [WIP] PARQUET-1166: Add GetRecordBatchReader in parquet/arrow/reader

8 months agoPARQUET-1245: Fix creating Arrow table with duplicate column names
Antoine Pitrou [Thu, 22 Mar 2018 23:53:26 +0000 (19:53 -0400)] 
PARQUET-1245: Fix creating Arrow table with duplicate column names

Author: Antoine Pitrou <>

Closes #447 from pitrou/ARROW-1974-duplicate-column-name and squashes the following commits:

a764a3c [Antoine Pitrou] Pass ColumnIndex() / FieldIndex() node argument by reference
4398d58 [Antoine Pitrou] ARROW-1974: Fix creating Arrow schema with duplicate column names

9 months agoPARQUET-1209: define ARROW_STATIC when PARQUET_ARROW_LINKAGE is static
rip.nsk [Mon, 12 Mar 2018 19:17:49 +0000 (20:17 +0100)] 

It does not solve the problem in general, but more correct anyway

Author: rip.nsk <>

Closes #446 from rip-nsk/PARQUET-1209 and squashes the following commits:

a4acb10 [rip.nsk] PARQUET-1209: define ARROW_STATIC when PARQUET_ARROW_LINKAGE is static

9 months agoIncrementing snapshot version to 1.4.1-SNAPSHOT. master-after-apache-parquet-cpp-1.4.0-rc1
Uwe L. Korn [Tue, 27 Feb 2018 12:43:25 +0000 (13:43 +0100)] 
Incrementing snapshot version to 1.4.1-SNAPSHOT.

9 months agoUpdating CHANGELOG for 1.4.0 release.
Uwe L. Korn [Tue, 27 Feb 2018 12:43:25 +0000 (13:43 +0100)] 
Updating CHANGELOG for 1.4.0 release.

9 months agoPARQUET-1225: NaN values may lead to incorrect filtering under certai…
Deepak Majeti [Sat, 24 Feb 2018 18:23:23 +0000 (19:23 +0100)] 
PARQUET-1225: NaN values may lead to incorrect filtering under certai…

1) `parquet-cpp` does not implement filtering (predicate pushdown). Clients such as Vertica, read the statistics from the metadata and implement their own filtering based on these stats.
Therefore, the read path does not require any changes. We should document that the min/max value can potentially contain NaNs.

2) I made changes to the write path to ignore the NaNs.

Author: Deepak Majeti <>

Closes #444 from majetideepak/PARQUET-1225 and squashes the following commits:

c29ede2 [Deepak Majeti] refactor code
c02adb2 [Deepak Majeti] fix compiler error
1c229e2 [Deepak Majeti] fix logic for UpdateSpaced
baf6f50 [Deepak Majeti] change api from NotNaN to IsNaN
3144a6a [Deepak Majeti] clang format
ba44611 [Deepak Majeti] review comments and add tests
63e889b [Deepak Majeti] PARQUET-1225: NaN values may lead to incorrect filtering under certain circumstances

9 months agoPARQUET-1233: Enable option to switch between stl classes and boost c…
Deepak Majeti [Wed, 21 Feb 2018 18:15:09 +0000 (13:15 -0500)] 
PARQUET-1233: Enable option to switch between stl classes and boost c…

…lasses for thrift header

Author: Deepak Majeti <>
Author: Wes McKinney <>

Closes #443 from majetideepak/PARQUET-1233 and squashes the following commits:

8d56f96 [Wes McKinney] Add PARQUET_THRIFT_USE_BOOST CMake option
37318dd [Deepak Majeti] Pin Thrift version 0.10.0 to toolchain
d065f80 [Deepak Majeti] PARQUET-1233: Enable option to switch between stl classes and boost classes for thrift header

9 months agoPARQUET-1218: More informative error message on too short pages
Uwe L. Korn [Wed, 21 Feb 2018 02:41:09 +0000 (21:41 -0500)] 
PARQUET-1218: More informative error message on too short pages

Author: Uwe L. Korn <>

Closes #438 from xhochy/PARQUET-1218 and squashes the following commits:

20ba13d [Uwe L. Korn] PARQUET-1218: More informative error message on too short pages

9 months agoPARQUET-1219: Update release-candidate script links to gitbox
Uwe L. Korn [Tue, 20 Feb 2018 17:34:37 +0000 (12:34 -0500)] 
PARQUET-1219: Update release-candidate script links to gitbox

Author: Uwe L. Korn <>

Closes #439 from xhochy/PARQUET-1219 and squashes the following commits:

35f83bf [Uwe L. Korn] PARQUET-1219: Update release-candidate script links to gitbox

9 months agoPARQUET-1220: Don't build Thrift examples and tutorials in the ExternalProject
Korn, Uwe [Tue, 20 Feb 2018 17:33:46 +0000 (12:33 -0500)] 
PARQUET-1220: Don't build Thrift examples and tutorials in the ExternalProject

Author: Korn, Uwe <>

Closes #440 from xhochy/PARQUET-1220 and squashes the following commits:

de2ee1b [Korn, Uwe] PARQUET-1220: Don't build Thrift examples and tutorials in the ExternalProject

9 months agoPARQUET-1221: Extend release README
Korn, Uwe [Tue, 20 Feb 2018 17:33:10 +0000 (12:33 -0500)] 
PARQUET-1221: Extend release README

Author: Korn, Uwe <>

Closes #441 from xhochy/PARQUET-1221 and squashes the following commits:

daa4778 [Korn, Uwe] PARQUET-1221: Extend release README [skip ci]

9 months agoPARQUET-1226: Fixes for CHECKIN compiler warning level with clang 5.0
Wes McKinney [Tue, 20 Feb 2018 17:32:23 +0000 (12:32 -0500)] 
PARQUET-1226: Fixes for CHECKIN compiler warning level with clang 5.0

This follows analogous work from ARROW-2117

Author: Wes McKinney <>

Closes #442 from wesm/PARQUET-1226 and squashes the following commits:

e3f512c [Wes McKinney] Leave default logging level for Arrow EP
d3ad125 [Wes McKinney] Fix various warnings exposed by clang 5.0, add extra compiler flags. Add ExternalProject logging to keep step with Arrow's CMake toolchain

10 months agoPARQUET-1196: Example parquet_arrow project
Uwe L. Korn [Thu, 15 Feb 2018 17:42:22 +0000 (18:42 +0100)] 
PARQUET-1196: Example parquet_arrow project

Depends on

Author: Uwe L. Korn <>
Author: Korn, Uwe <>

Closes #436 from xhochy/PARQUET-1196 and squashes the following commits:

a938da7 [Uwe L. Korn] Check Status for PrettyPrint
15d62f3 [Uwe L. Korn] PARQUET-1196: Example parquet_arrow project
1280fd5 [Korn, Uwe] PARQUET-1200: Support reading a single Arrow column from a Parquet file

10 months agoPARQUET-1200: Support reading a single Arrow column from a Parquet file
Korn, Uwe [Tue, 13 Feb 2018 15:08:31 +0000 (16:08 +0100)] 
PARQUET-1200: Support reading a single Arrow column from a Parquet file

cc @lorenzhs

Author: Korn, Uwe <>

Closes #434 from xhochy/PARQUET-1200 and squashes the following commits:

98ac6f0 [Korn, Uwe] PARQUET-1200: Support reading a single Arrow column from a Parquet file

10 months agoPARQUET-1210: [C++] Completely disable boost autolink on MSVC build
Max Risuhin [Tue, 13 Feb 2018 15:06:25 +0000 (16:06 +0100)] 
PARQUET-1210: [C++] Completely disable boost autolink on MSVC build

Author: Max Risuhin <>

Closes #437 from MaxRis/PARQUET-1210 and squashes the following commits:

04a58a1 [Max Risuhin] PARQUET-1210: [C++] Completely disable boost autolink on MSVC build

10 months agoPARQUET-1205: Fix msvc build with static arrow lib
revaliu [Sat, 10 Feb 2018 18:39:34 +0000 (19:39 +0100)] 
PARQUET-1205: Fix msvc build with static arrow lib

Author: revaliu <>

Closes #435 from rip-nsk/PARQUET-1205 and squashes the following commits:

60eacb2 [revaliu] allow to use static only arrow library
511b369 [revaliu] boost_static_filesystem is required for static build

10 months agoPARQUET-1179: Upgrade to Thrift 0.11, use std::shared_ptr instead of boost::shared_ptr
Uwe L. Korn [Sun, 28 Jan 2018 14:30:20 +0000 (15:30 +0100)] 
PARQUET-1179: Upgrade to Thrift 0.11, use std::shared_ptr instead of boost::shared_ptr

Author: Uwe L. Korn <>
Author: Wes McKinney <>
Author: Uwe L. Korn <>

Closes #433 from wesm/PARQUET-1179 and squashes the following commits:

e005a01 [Uwe L. Korn] Install thrift-cpp=0.11.0 on AppVeyor
9f82afe [Uwe L. Korn] Install newer bison
3b798c4 [Wes McKinney] Upgrade to Thrift 0.11, use std::shared_ptr instead of boost::shared_ptr

10 months agoPARQUET-1151: [C++] Link with static ms crt
Max Risuhin [Wed, 24 Jan 2018 22:23:07 +0000 (23:23 +0100)] 
PARQUET-1151: [C++] Link with static ms crt

Author: Max Risuhin <>

Closes #429 from MaxRis/PARQUET-1151 and squashes the following commits:

ad22f6a [Max Risuhin] PARQUET-1151: [C++] Link with static ms crt

10 months agoPARQUET-1193: [CPP] Implement ColumnOrder to support min_value and max_value
Deepak Majeti [Wed, 24 Jan 2018 22:20:42 +0000 (23:20 +0100)] 
PARQUET-1193: [CPP] Implement ColumnOrder to support min_value and max_value


1. Update parquet.thrift format
2. Add ColumnOrder Implementation
3. Make Int96 sort order UNKNOWN

Author: Deepak Majeti <>

Closes #430 from majetideepak/PARQUET-1193 and squashes the following commits:

d31df36 [Deepak Majeti] Fix unused function Warning
4ed405f [Deepak Majeti] Add comments
dec58ca [Deepak Majeti] clang-format
2cd9f11 [Deepak Majeti] Make Int96 sort order UNKNOWN
ff41b3c [Deepak Majeti] Add ColumnOrder Implementation
6221cba [Deepak Majeti] Pull updated parquet.thrift format

11 months agoPARQUET-1086: [C++] Remove usage of arrow/util/compiler-util.h
Korn, Uwe [Tue, 16 Jan 2018 03:31:31 +0000 (22:31 -0500)] 
PARQUET-1086: [C++] Remove usage of arrow/util/compiler-util.h

Author: Korn, Uwe <>

Closes #428 from xhochy/PARQUET-1086 and squashes the following commits:

da7593f [Korn, Uwe] PARQUET-1086: [C++] Remove usage of arrow/util/compiler-util.h

11 months agoPARQUET-1180: Fix behaviour of num_children element of primitive nodes
Alec Posney [Fri, 29 Dec 2017 16:43:06 +0000 (17:43 +0100)] 
PARQUET-1180: Fix behaviour of num_children element of primitive nodes

Per the parquet.thift spec, for primitive nodes the num_children schema
attibute should remain unset. This is implemeted correctly in parquet-mr
see [1]. However currently parquet-cpp does set the num_children
attribute to 0 if it is a primitive node. This pull requests fixes this
issue and the tests that were relying on this behavior

[1] parquet-mr/parquet-hadoop/src/main/java/org/apache/parquet/format/converter/

Author: Alec Posney <>

Closes #427 from Posnet/fix-primite-node-num-children and squashes the following commits:

e5af5c6 [Alec Posney] Fix behavior of num_children element of primitive nodes

12 months agoPARQUET-1092: Support writing chunked arrow::Table columns
Wes McKinney [Sun, 17 Dec 2017 11:13:27 +0000 (12:13 +0100)] 
PARQUET-1092: Support writing chunked arrow::Table columns

I did quite a bit of refactoring to make this easier / simpler. I think there's some additional work we could do to make the write-path code cleaner, but we should probably wait to do some of that until we implement complete nested data write and read.

I will follow up shortly with some functional tests for ARROW-232 to make sure this works end-to-end on the pyarrow side.

Author: Wes McKinney <>

Closes #426 from wesm/PARQUET-1092 and squashes the following commits:

7aa3fab [Wes McKinney] Fix compiler warnings
a72ad12 [Wes McKinney] Test and fix bugs with chunked writes. Ensure that primitive types use right transfer functor on read path
c5006cb [Wes McKinney] Fix and expand date64->date32 conversion unit test
61e364c [Wes McKinney] Compiling again with test failure
c7e6696 [Wes McKinney] More refactoring, chunked writes
9f35818 [Wes McKinney] More refactoring
3e297cc [Wes McKinney] Start refactoring, totally broken

12 months agoPARQUET-1177: Add PARQUET_BUILD_WARNING_LEVEL option and more rigorous Clang warnings
Wes McKinney [Wed, 13 Dec 2017 22:19:22 +0000 (17:19 -0500)] 
PARQUET-1177: Add PARQUET_BUILD_WARNING_LEVEL option and more rigorous Clang warnings

These warnings will catch a number of things that have bitten us in the past, like missing virtual destructors. This brings Parquet's compiler warnings up to the same quality as Arrow's

Author: Wes McKinney <>
Author: Wes McKinney <>

Closes #425 from wesm/PARQUET-1177 and squashes the following commits:

3769a8c [Wes McKinney] Add -Wno-missing-noreturn
5b6cd80 [Wes McKinney] Compile with /bigobj in MSVC
cc5bca0 [Wes McKinney] Add noreturn to static methods in ParquetException
e3ffb71 [Wes McKinney] Fix -Wconversion warnings in
758a216 [Wes McKinney] Fix warnings on macOS Clang
3aef3b4 [Wes McKinney] Do not pass -Werror via PARQUET_CXXFLAGS
5a98e81 [Wes McKinney] Fix usage of PrimitiveArray::raw_values
c848855 [Wes McKinney] Fix compiler warnings with gcc 4.9
ca9a374 [Wes McKinney] Add SetupCxxFlags.cmake from Apache Arrow. Add PARQUET_BUILD_WARNING_LEVEL flag. Fix Clang compiler warnings

12 months agoPARQUET-859: Flatten parquet/file directory, consolidate file reader, file writer...
Wes McKinney [Tue, 12 Dec 2017 19:12:08 +0000 (14:12 -0500)] 
PARQUET-859: Flatten parquet/file directory, consolidate file reader, file writer code

I believe this makes the codebase simpler and easier to navigate. By consolidating the file reader/writer code, further refactoring and internal improvements will be less obtuse

Author: Wes McKinney <>

Closes #424 from wesm/PARQUET-859 and squashes the following commits:

c98e3d4 [Wes McKinney] Do not generate Thrift files in source directory
e987f47 [Wes McKinney] Remove superfluous PARQUET_EXPORT
0fb83a8 [Wes McKinney] Consolidate file_reader.h, file_reader-internal.h
ac6e2c5 [Wes McKinney] First cut flattening of parquet/file directory and consolidate writer, writer-internal headers

12 months agoPARQUET-1165: Pin clang-format version to 4.0
Korn, Uwe [Mon, 11 Dec 2017 20:21:19 +0000 (15:21 -0500)] 
PARQUET-1165: Pin clang-format version to 4.0

Author: Korn, Uwe <>

Closes #420 from xhochy/PARQUET-1165 and squashes the following commits:

1f826cf [Korn, Uwe] Exclude clang_format_exclusions.txt from RAT
527b26c [Korn, Uwe] PARQUET-1165: Pin clang-format version to 4.0

12 months agoPARQUET-1175: Fix arrow::ArrayData method rename from ShallowCopy to Copy
Wes McKinney [Mon, 11 Dec 2017 20:20:37 +0000 (15:20 -0500)] 
PARQUET-1175: Fix arrow::ArrayData method rename from ShallowCopy to Copy

Author: Wes McKinney <>

Closes #423 from wesm/PARQUET-1175 and squashes the following commits:

675ed33 [Wes McKinney] Bump Arrow version to master
9a1e53f [Wes McKinney] Fix arrow::ArrayData method rename from ShallowCopy to Copy

12 months agoPARQUET-1167: [C++] FieldToNode function should return a status when throwing an...
Phillip Cloud [Sun, 3 Dec 2017 21:07:39 +0000 (16:07 -0500)] 
PARQUET-1167: [C++] FieldToNode function should return a status when throwing an exception

Author: Phillip Cloud <>

Closes #421 from cpcloud/PARQUET-1167 and squashes the following commits:

2ae1953 [Phillip Cloud] Formatting
b465d91 [Phillip Cloud] PARQUET-1167: [C++] FieldToNode function should return a status when throwing an exception

12 months agoPARQUET-970: Add Lz4 and Zstd compression codecs
Xianjin YE [Thu, 23 Nov 2017 09:23:16 +0000 (10:23 +0100)] 
PARQUET-970: Add Lz4 and Zstd compression codecs

which are already added in [apache/parquet-format#70](

Author: Xianjin YE <>

Closes #419 from advancedxy/PARQUET-970 and squashes the following commits:

3501659 [Xianjin YE] PARQUET-970: Add Lz4 and Zstd compression codec
48ad74e [Xianjin YE] PARQUET-970: Add Lz4 and Zstd compression codec

12 months agoPARQUET-1164: [C++] Account for API changes in ARROW-1808
Wes McKinney [Wed, 22 Nov 2017 14:32:21 +0000 (09:32 -0500)] 
PARQUET-1164: [C++] Account for API changes in ARROW-1808

Author: Wes McKinney <>

Closes #418 from wesm/PARQUET-1164 and squashes the following commits:

ca18e60 [Wes McKinney] Bump Arrow version to include ARROW-1808
d580b4f [Wes McKinney] Refactor to account for ARROW-1808

12 months agoPARQUET-1095: [C++] Read and write Arrow decimal values
Phillip Cloud [Mon, 20 Nov 2017 04:19:03 +0000 (23:19 -0500)] 
PARQUET-1095: [C++] Read and write Arrow decimal values

This depends on:
- [x] [ARROW-1607](
- [x] [ARROW-1656](
- [x] [ARROW-1588](
- [x] Add tests for writing different sizes of values

Author: Phillip Cloud <>
Author: Wes McKinney <>

Closes #403 from cpcloud/PARQUET-1095 and squashes the following commits:

8c3d222 [Phillip Cloud] Remove loop from BytesToInteger
63018bc [Wes McKinney] Suppress C4996 due to arrow/util/variant.h
e4b02d3 [Phillip Cloud] Refactor types.h
83948ec [Phillip Cloud] Add last_value_ init
51965cd [Phillip Cloud] Min commit that contains the unique kernel in arrow
e25c59b [Phillip Cloud] Fix reader writer test for unique kernel addition
da0a7eb [Phillip Cloud] Update for ARROW-1811
16935de [Phillip Cloud] Reverse operand order and explicit cast
6036ca5 [Phillip Cloud] ARROW-1811
c5c4294 [Phillip Cloud] Fix issues
32a4abe [Phillip Cloud] Cleanup iteration a bit
920832a [Phillip Cloud] Update arrow version
9f97c1d [Phillip Cloud] Update for ARROW-1794: rename DecimalArray to Decimal128Array
b2e0290 [Phillip Cloud] IWYU
64748a8 [Phillip Cloud] Copy from arrow for now
6c9e2a7 [Phillip Cloud] Reduce the number of decimal test cases
7ab2e5c [Phillip Cloud] Parameterize on precision
30655d6 [Phillip Cloud] Use arrow random_decimals
9ff7eb4 [Phillip Cloud] Remove specific template parameters
1eee6a9 [Phillip Cloud] Remove specific randint call
8808e4c [Phillip Cloud] Bump arrow version
659fbc1 [Phillip Cloud] Fix deprecated API call
e162ca1 [Phillip Cloud] Allocate scratch space to hold the byteswapped values
5c9292b [Phillip Cloud] Proper dcheck call
1782da0 [Phillip Cloud] Use arrow
3d243d5 [Phillip Cloud] Checkpoint [ci skip]
028fb03 [Phillip Cloud] Remove garbage values
46dff15 [Phillip Cloud] Clean up uint32 test
613255e [Phillip Cloud] Do not use std::copy when reinterpret_cast will suffice
2917a62 [Phillip Cloud] PARQUET-1095: [C++] Read and write Arrow decimal values

12 months agoPARQUET-1162: Update dev/README after migration to Gitbox
Uwe L. Korn [Sun, 19 Nov 2017 22:43:46 +0000 (17:43 -0500)] 
PARQUET-1162: Update dev/README after migration to Gitbox

Author: Uwe L. Korn <>

Closes #417 from xhochy/PARQUET-1162 and squashes the following commits:

f0c1a3b [Uwe L. Korn] PARQUET-1162: Update dev/README after migration to Gitbox

12 months agoPARQUET-1146: Add macOS-compatible sha512sum call to release verify script
Korn, Uwe [Sun, 19 Nov 2017 15:33:33 +0000 (16:33 +0100)] 
PARQUET-1146: Add macOS-compatible sha512sum call to release verify script

Author: Korn, Uwe <>

Closes #414 from xhochy/PARQUET-1146 and squashes the following commits:

74821cc [Korn, Uwe] PARQUET-1146: Add macOS-compatible sha512sum call to release verify script

13 months agoPARQUET-1150: Hide statically linked boost symbols
Korn, Uwe [Mon, 30 Oct 2017 07:56:05 +0000 (08:56 +0100)] 
PARQUET-1150: Hide statically linked boost symbols

Author: Korn, Uwe <>

Closes #416 from xhochy/PARQUET-1150 and squashes the following commits:

13f23c4 [Korn, Uwe] Hide statically linked boost symbols

13 months agoIncrementing snapshot version to 1.3.2-SNAPSHOT. master-after-apache-parquet-cpp-1.3.1-rc1
Uwe L. Korn [Sun, 22 Oct 2017 10:55:45 +0000 (12:55 +0200)] 
Incrementing snapshot version to 1.3.2-SNAPSHOT.

13 months agoUpdating CHANGELOG for 1.3.1 release.
Uwe L. Korn [Sun, 22 Oct 2017 10:55:45 +0000 (12:55 +0200)] 
Updating CHANGELOG for 1.3.1 release.

13 months agoRevert "Updating CHANGELOG for 1.3.1 release."
Uwe L. Korn [Sun, 22 Oct 2017 10:53:21 +0000 (12:53 +0200)] 
Revert "Updating CHANGELOG for 1.3.1 release."

This reverts commit 751ddab98f78611a020f288f509306b8e39dc258.

13 months agoRevert "Incrementing snapshot version to 1.3.2-SNAPSHOT."
Uwe L. Korn [Sun, 22 Oct 2017 10:53:14 +0000 (12:53 +0200)] 
Revert "Incrementing snapshot version to 1.3.2-SNAPSHOT."

This reverts commit 475be0ba774287932fa25eb50698768571917c58.

13 months agoPARQUET-1140: Fail on RAT errors in CI
Korn, Uwe [Fri, 20 Oct 2017 17:05:47 +0000 (13:05 -0400)] 
PARQUET-1140: Fail on RAT errors in CI

Author: Korn, Uwe <>

Closes #413 from xhochy/PARQUET-1140 and squashes the following commits:

5ae89dc [Korn, Uwe] Add license headers to Snappy related files
0d17129 [Korn, Uwe] PARQUET-1140: Fail on RAT errors in CI

14 months agoPARQUET-1139: Add license header to
Lars Volker [Tue, 17 Oct 2017 18:07:51 +0000 (20:07 +0200)] 
PARQUET-1139: Add license header to

Author: Lars Volker <>

Closes #411 from lekv/license and squashes the following commits:

7bd3eee [Lars Volker] Add license to gitignore and clang-tidy
7c33449 [Lars Volker] PARQUET-1139: Add license header to

14 months agoPARQUET-1138: Fix Arrow 0.7.1 build
Wes McKinney [Mon, 16 Oct 2017 18:58:26 +0000 (20:58 +0200)] 
PARQUET-1138: Fix Arrow 0.7.1 build

This is a very minor issue with the 1.3.1 RC0. If this build passes cleanly I will vote to approve the release as this only affects this unit test

Author: Wes McKinney <>

Closes #410 from wesm/arrow-0.7.1-fix-build and squashes the following commits:

fd6a527 [Wes McKinney] Add comment
f95ff0b [Wes McKinney] Fix compilation with Arrow 0.7.1, set 0.7.1 in ThirdpartyToolchain.cmake

14 months agoIncrementing snapshot version to 1.3.2-SNAPSHOT. master-after-apache-parquet-cpp-1.3.1-rc0
Uwe L. Korn [Fri, 13 Oct 2017 07:05:19 +0000 (09:05 +0200)] 
Incrementing snapshot version to 1.3.2-SNAPSHOT.

14 months agoUpdating CHANGELOG for 1.3.1 release.
Uwe L. Korn [Fri, 13 Oct 2017 07:05:18 +0000 (09:05 +0200)] 
Updating CHANGELOG for 1.3.1 release.

14 months agoPARQUET-1070 Add CPack support to the build
Mike Trinkala [Thu, 12 Oct 2017 18:16:51 +0000 (14:16 -0400)] 
PARQUET-1070 Add CPack support to the build

Author: Mike Trinkala <>

Closes #409 from trink/PARQUET-1070 and squashes the following commits:

dafee2c [Mike Trinkala] PARQUET-1070: Add CPack support to the build

14 months agoPARQUET-1121: Handle Dictionary[Null] arrays on writing Arrow tables
Korn, Uwe [Sat, 7 Oct 2017 19:55:43 +0000 (15:55 -0400)] 
PARQUET-1121: Handle Dictionary[Null] arrays on writing Arrow tables

I will fix the underlying issue in Arrow but this fixes the issue so we can get a 1.3.1 release out soon.

Author: Korn, Uwe <>

Closes #407 from xhochy/PARQUET-1121 and squashes the following commits:

85223b9 [Korn, Uwe] PARQUET-1121: Handle Dictionary[Null] arrays on writing Arrow tables

14 months agoPARQUET-1123: [C++] Update parquet-cpp to use Arrow's AssertArraysEqual
Phillip Cloud [Sat, 7 Oct 2017 19:47:33 +0000 (15:47 -0400)] 
PARQUET-1123: [C++] Update parquet-cpp to use Arrow's AssertArraysEqual

Author: Phillip Cloud <>

Closes #408 from cpcloud/PARQUET-1123 and squashes the following commits:

771effb [Phillip Cloud] PARQUET-1123: [C++] Update parquet-cpp to use Arrow's AssertArraysEqual

14 months agoPARQUET-1105: Remove libboost_system dependency for non MSVC
Deepak Majeti [Thu, 28 Sep 2017 13:43:49 +0000 (15:43 +0200)] 
PARQUET-1105: Remove libboost_system dependency for non MSVC

Author: Deepak Majeti <>

Closes #406 from majetideepak/PARQUET-1105 and squashes the following commits:

cafd464 [Deepak Majeti] PARQUET-1105: Remove libboost_system dependency for non MSVC

14 months agoPARQUET-1114 Apply changes for ARROW-1601 ARROW-1611, change shared l…
Rene Sugar [Wed, 27 Sep 2017 04:29:44 +0000 (00:29 -0400)] 
PARQUET-1114 Apply changes for ARROW-1601 ARROW-1611, change shared l…

PARQUET-1114 Apply changes for ARROW-1601 and ARROW-1611, change shared library suffix in FindArrow.cmake for APPLE

Author: Rene Sugar <>

Closes #405 from renesugar/PARQUET-1114 and squashes the following commits:

8fc0a2e [Rene Sugar] PARQUET-1114 Apply changes for ARROW-1601 ARROW-1611, change shared library suffix in FindArrow.cmake for APPLE

14 months agoPARQUET-1109: Update release verification script to SHA512
Uwe L. Korn [Mon, 25 Sep 2017 12:43:24 +0000 (14:43 +0200)] 
PARQUET-1109: Update release verification script to SHA512

Author: Uwe L. Korn <>

Closes #400 from xhochy/PARQUET-1109 and squashes the following commits:

8e776fa [Uwe L. Korn] Update release verification script to SHA512

14 months agoPARQUET-1111: Fix help for verify-release-candidate
Lars Volker [Mon, 25 Sep 2017 12:42:45 +0000 (14:42 +0200)] 
PARQUET-1111: Fix help for verify-release-candidate

The tool takes 2 parameters, version and rc-num. The help only printed a
single parameter.

Author: Lars Volker <>

Closes #402 from lekv/p1111 and squashes the following commits:

7536709 [Lars Volker] PARQUET-1111: Fix help for verify-release-candidate

14 months agoPARQUET-1110: Add release verification script for Windows
Wes McKinney [Mon, 25 Sep 2017 12:39:08 +0000 (14:39 +0200)] 
PARQUET-1110: Add release verification script for Windows

Author: Wes McKinney <>

Closes #401 from wesm/windows-verify-release and squashes the following commits:

61e573b [Wes McKinney] Add release verification script for Windows

14 months agoIncrementing snapshot version to 1.3.1-SNAPSHOT. master-after-apache-parquet-cpp-1.3.0-rc0
Uwe L. Korn [Thu, 21 Sep 2017 11:32:55 +0000 (13:32 +0200)] 
Incrementing snapshot version to 1.3.1-SNAPSHOT.

14 months agoUpdating CHANGELOG for 1.3.0 release.
Uwe L. Korn [Thu, 21 Sep 2017 11:32:55 +0000 (13:32 +0200)] 
Updating CHANGELOG for 1.3.0 release.

14 months agoPARQUET-1108: Fix Int96 comparators
Deepak Majeti [Thu, 21 Sep 2017 07:31:19 +0000 (09:31 +0200)] 
PARQUET-1108: Fix Int96 comparators

Int96 must be treated as a hardware intrinsic type. Therefore, the comparator for little-endian must start from the end.

Author: Deepak Majeti <>

Closes #399 from majetideepak/PARQUET-1108 and squashes the following commits:

352522a [Deepak Majeti] PARQUET-1108: Fix Int96 comparators

14 months agoPARQUET-1037: allow arbitrary size row-groups
Toby Shaw [Thu, 21 Sep 2017 07:28:27 +0000 (09:28 +0200)] 
PARQUET-1037: allow arbitrary size row-groups

The main change made is that you don't have to specify the size of a row-group upfront when writing it. This is signalled through a "row_count_determined" flag which is threaded through the relevant classes.

The AppendRowGroup(int64_t num_rows) method should have identical behaviour as before.
The AppendRowGroup() method should fix its row group after completing a single column, and enforce all
future columns match that. Empty row groups are still not allowed.

(You'll definitely want to squash these commits. Apologies for the poor git usage.)

Author: Toby Shaw <labuser@LABWKS10>
Author: Wes McKinney <>

Closes #378 from TobyShaw/master and squashes the following commits:

5ba1b75 [Wes McKinney] * Remove number of expected rows from ColumnWriter in a backwards compatible   way, refactoring * Fix issue where column length was being checked twice after failed write
14bc5e8 [Toby Shaw] Allow arbitrary size row groups

14 months agoPARQUET-1100: Introduce RecordReader interface to better support nested data, refacto...
Wes McKinney [Wed, 20 Sep 2017 01:38:52 +0000 (21:38 -0400)] 
PARQUET-1100: Introduce RecordReader interface to better support nested data, refactor parquet/arrow/reader

We did not have very consistent logic around reading values from leaf nodes versus reading semantic records where the repetition level is greater than zero. This introduces a reader class that reads from column chunks until it identifies the end of records. It also reads values (with spaces, if required by the schema) into internal buffers. This permitted a substantial refactoring and simplification of the code in parquet::arrow where we were handling the interpretation of batch reads as records manually.

As follow up patch, we should be able to take a collection of record readers from the same "tree" in a nested type and reassemble the intermediate Arrow structure and dealing with any redundant structure information in repetition and definition levels. This should a allow a unification of our nested data read code path so that we can read arbitrary nested structures.

Author: Wes McKinney <>

Closes #398 from wesm/PARQUET-1100 and squashes the following commits:

9ea85d9 [Wes McKinney] Revert to const args
f4dc0fe [Wes McKinney] Make parquet::schema::Node non-copyable. Use const-refs instead of const-ptr for non-nullable argument
0d859cc [Wes McKinney] Code review comments, scrubbing some flakes
1368415 [Wes McKinney] Fix more MSVC warnings
eccb84c [Wes McKinney] Give macro more accurate name
0eaada0 [Wes McKinney] Use int64_t instead of int for batch sizes
79c3709 [Wes McKinney] Add documentation. Remove RecordReader from public API
8fa619b [Wes McKinney] Initialize memory in DecodeSpaced to avoid undefined behavior
5a0c860 [Wes McKinney] Remove non-repeated branch from DelimitRecords
c754e6e [Wes McKinney] Refactor to skip record delimiting for non-repeated data
ed2a03f [Wes McKinney] Move more code into TypedRecordReader
2e934e9 [Wes McKinney] Set some integers as const
58d3a0f [Wes McKinney] Do not index into levels arrays
b766371 [Wes McKinney] Add RecordReader::Reserve to preallocate, fixing perf regression. cpplint
1bf3e8f [Wes McKinney] Refactor to create stateful parquet::RecordReader class to better support nested data. Shift value buffering logic from parquet/arrow/reader into RecordReader. Fix bug described in PARQUET-1100