Skip to content

Commit bf5cdfe

Browse files
Upgrade Arrow C++ to 20.0.0 (#528)
Co-authored-by: Joshua Oloton <[email protected]>
1 parent 565b8ef commit bf5cdfe

25 files changed

+107
-41
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ dotnet jb cleanupcode "csharp" "csharp.test" "csharp.benchmark" --profile="Built
270270
Building ParquetSharp natively requires the following dependencies:
271271
- A modern C++ compiler toolchain
272272
- .NET SDK 8.0
273-
- Apache Arrow (19.0.1)
273+
- Apache Arrow (20.0.0)
274274

275275
For building Arrow (including Parquet) and its dependencies, we recommend using Microsoft's [vcpkg](https://vcpkg.io).
276276
The build scripts will use an existing vcpkg installation if either of the `VCPKG_INSTALLATION_ROOT` or `VCPKG_ROOT` environment variables are defined, otherwise vcpkg will be downloaded into the build directory.

cpp/ColumnDecryptionProperties.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@ extern "C"
1111
{
1212
PARQUETSHARP_EXPORT ExceptionInfo* ColumnDecryptionProperties_Deep_Clone(const std::shared_ptr<ColumnDecryptionProperties>* properties, std::shared_ptr<ColumnDecryptionProperties>** clone)
1313
{
14-
TRYCATCH(*clone = new std::shared_ptr((*properties)->DeepClone());)
14+
// Note: This no longer does a true deep clone but we keep this C++ method for compatibility with the
15+
// .NET library so that the C++ shared pointers may be freed independently.
16+
TRYCATCH(*clone = new std::shared_ptr(*properties);)
1517
}
16-
18+
1719
PARQUETSHARP_EXPORT void ColumnDecryptionProperties_Free(const std::shared_ptr<const ColumnDecryptionProperties>* properties)
1820
{
1921
delete properties;

cpp/ColumnEncryptionProperties.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@ extern "C"
1111
{
1212
PARQUETSHARP_EXPORT ExceptionInfo* ColumnEncryptionProperties_Deep_Clone(const std::shared_ptr<ColumnEncryptionProperties>* properties, std::shared_ptr<ColumnEncryptionProperties>** clone)
1313
{
14-
TRYCATCH(*clone = new std::shared_ptr((*properties)->DeepClone());)
14+
// Note: This no longer does a true deep clone but we keep this C++ method for compatibility with the
15+
// .NET library so that the C++ shared pointers may be freed independently.
16+
TRYCATCH(*clone = new std::shared_ptr(*properties);)
1517
}
16-
18+
1719
PARQUETSHARP_EXPORT void ColumnEncryptionProperties_Free(const std::shared_ptr<const ColumnEncryptionProperties>* properties)
1820
{
1921
delete properties;

cpp/Enums.cpp

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,9 @@ namespace
5959
static_assert(ParquetCipher::AES_GCM_CTR_V1 == 1);
6060

6161
static_assert(ParquetVersion::PARQUET_1_0 == 0);
62-
ARROW_SUPPRESS_DEPRECATION_WARNING
63-
static_assert(ParquetVersion::PARQUET_2_0 == 1);
64-
ARROW_UNSUPPRESS_DEPRECATION_WARNING
65-
static_assert(ParquetVersion::PARQUET_2_4 == 2);
66-
static_assert(ParquetVersion::PARQUET_2_6 == 3);
67-
static_assert(ParquetVersion::PARQUET_2_LATEST == 3);
62+
static_assert(ParquetVersion::PARQUET_2_4 == 1);
63+
static_assert(ParquetVersion::PARQUET_2_6 == 2);
64+
static_assert(ParquetVersion::PARQUET_2_LATEST == 2);
6865

6966
static_assert(Type::BOOLEAN == 0);
7067
static_assert(Type::INT32 == 1);

cpp/FileDecryptionProperties.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ extern "C"
1313
{
1414
PARQUETSHARP_EXPORT ExceptionInfo* FileDecryptionProperties_Deep_Clone(const std::shared_ptr<FileDecryptionProperties>* properties, std::shared_ptr<FileDecryptionProperties>** clone)
1515
{
16-
TRYCATCH(*clone = new std::shared_ptr((*properties)->DeepClone());)
16+
// Note: This no longer does a true deep clone but we keep this C++ method for compatibility with the
17+
// .NET library so that the C++ shared pointers may be freed independently.
18+
TRYCATCH(*clone = new std::shared_ptr(*properties);)
1719
}
1820

1921
PARQUETSHARP_EXPORT void FileDecryptionProperties_Free(const std::shared_ptr<const FileDecryptionProperties>* properties)

cpp/FileEncryptionProperties.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ extern "C"
1111
{
1212
PARQUETSHARP_EXPORT ExceptionInfo* FileEncryptionProperties_Deep_Clone(const std::shared_ptr<FileEncryptionProperties>* properties, std::shared_ptr<FileEncryptionProperties>** clone)
1313
{
14-
TRYCATCH(*clone = new std::shared_ptr((*properties)->DeepClone());)
14+
// Note: This no longer does a true deep clone but we keep this C++ method for compatibility with the
15+
// .NET library so that the C++ shared pointers may be freed independently.
16+
TRYCATCH(*clone = new std::shared_ptr(*properties);)
1517
}
1618

1719
PARQUETSHARP_EXPORT void FileEncryptionProperties_Free(const std::shared_ptr<const FileEncryptionProperties>* properties)

cpp/arrow/FileReader.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,13 +93,13 @@ extern "C"
9393
}
9494
if (columns == nullptr)
9595
{
96-
PARQUET_THROW_NOT_OK(reader->GetRecordBatchReader(row_groups_vec, &batch_reader));
96+
PARQUET_ASSIGN_OR_THROW(batch_reader, reader->GetRecordBatchReader(row_groups_vec));
9797
}
9898
else
9999
{
100100
std::vector<int> columns_vec(columns_count);
101101
std::copy(columns, columns + columns_count, columns_vec.begin());
102-
PARQUET_THROW_NOT_OK(reader->GetRecordBatchReader(row_groups_vec, columns_vec, &batch_reader));
102+
PARQUET_ASSIGN_OR_THROW(batch_reader, reader->GetRecordBatchReader(row_groups_vec, columns_vec));
103103
}
104104
PARQUET_THROW_NOT_OK(arrow::ExportRecordBatchReader(batch_reader, stream_out));
105105
)

cpp/arrow/FileWriter.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,9 +113,9 @@ extern "C"
113113
)
114114
}
115115

116-
PARQUETSHARP_EXPORT ExceptionInfo* FileWriter_NewRowGroup(FileWriter* writer, int64_t chunk_size)
116+
PARQUETSHARP_EXPORT ExceptionInfo* FileWriter_NewRowGroup(FileWriter* writer)
117117
{
118-
TRYCATCH(PARQUET_THROW_NOT_OK(writer->NewRowGroup(chunk_size));)
118+
TRYCATCH(PARQUET_THROW_NOT_OK(writer->NewRowGroup());)
119119
}
120120

121121
PARQUETSHARP_EXPORT ExceptionInfo* FileWriter_NewBufferedRowGroup(FileWriter* writer)

csharp.test/Arrow/TestFileWriter.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ public async Task TestWriteRowGroupColumns()
222222
for (var rowGroupIdx = 0; rowGroupIdx < numRowGroups; ++rowGroupIdx)
223223
{
224224
var start = rowGroupIdx * rowsPerRowGroup;
225-
writer.NewRowGroup(rowsPerRowGroup);
225+
writer.NewRowGroup();
226226

227227
using (var intArray = new Int32Array.Builder()
228228
.AppendRange(Enumerable.Range(start, rowsPerRowGroup))
@@ -268,7 +268,7 @@ public async Task TestWriteRowGroupColumnsChunked()
268268
{
269269
var start0 = rowGroupIdx * rowsPerRowGroup;
270270
var start1 = start0 + chunkSize;
271-
writer.NewRowGroup(rowsPerRowGroup);
271+
writer.NewRowGroup();
272272

273273
{
274274
using var intArray0 = new Int32Array.Builder()

csharp.test/TestPhysicalTypeRoundtrip.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ private static void AssertReadRoundtrip(ResizableBuffer buffer, ExpectedColumn[]
163163

164164
var numRows = expectedColumns.First().Values.Length;
165165

166-
Assert.AreEqual("parquet-cpp-arrow version 19.0.1", fileMetaData.CreatedBy);
166+
Assert.AreEqual("parquet-cpp-arrow version 20.0.0", fileMetaData.CreatedBy);
167167
Assert.AreEqual(new Dictionary<string, string> {{"case", "Test"}, {"Awesome", "true"}}, fileMetaData.KeyValueMetadata);
168168
Assert.AreEqual(expectedColumns.Length, fileMetaData.NumColumns);
169169
Assert.AreEqual(numRows, fileMetaData.NumRows);
@@ -174,7 +174,7 @@ private static void AssertReadRoundtrip(ResizableBuffer buffer, ExpectedColumn[]
174174
// The parquet format only stores an integer file version (1 or 2) and
175175
// 2 gets mapped to the latest 2.x version.
176176
Assert.AreEqual(ParquetVersion.PARQUET_2_6, fileMetaData.Version);
177-
Assert.AreEqual("parquet-cpp-arrow version 19.0.1", fileMetaData.WriterVersion.ToString());
177+
Assert.AreEqual("parquet-cpp-arrow version 20.0.0", fileMetaData.WriterVersion.ToString());
178178

179179
using var rowGroupReader = fileReader.RowGroup(0);
180180
var rowGroupMetaData = rowGroupReader.MetaData;

0 commit comments

Comments
 (0)