diff --git a/cpp/BufferOutputStream.cpp b/cpp/BufferOutputStream.cpp index 0b316f1d..7260ce61 100644 --- a/cpp/BufferOutputStream.cpp +++ b/cpp/BufferOutputStream.cpp @@ -12,7 +12,7 @@ extern "C" TRYCATCH ( PARQUET_ASSIGN_OR_THROW( - std::shared_ptr output, + const std::shared_ptr output, arrow::io::BufferOutputStream::Create(1024, arrow::default_memory_pool())); *output_stream = new std::shared_ptr(output); @@ -29,7 +29,7 @@ extern "C" TRYCATCH ( PARQUET_ASSIGN_OR_THROW( - std::shared_ptr buf, + const std::shared_ptr buf, (*output_stream)->Finish()); *buffer = new std::shared_ptr(buf); diff --git a/cpp/ColumnChunkMetaData.cpp b/cpp/ColumnChunkMetaData.cpp index 2b5e83fd..721c2e16 100644 --- a/cpp/ColumnChunkMetaData.cpp +++ b/cpp/ColumnChunkMetaData.cpp @@ -67,7 +67,7 @@ extern "C" TRYCATCH ( const auto s = column_chunk_meta_data->statistics(); - *statistics = s ? new std::shared_ptr(s) : nullptr; + *statistics = s ? new std::shared_ptr(s) : nullptr; ) } diff --git a/cpp/ColumnDecryptionProperties.cpp b/cpp/ColumnDecryptionProperties.cpp index 8cd6887b..fb32a0fa 100644 --- a/cpp/ColumnDecryptionProperties.cpp +++ b/cpp/ColumnDecryptionProperties.cpp @@ -11,7 +11,7 @@ extern "C" { PARQUETSHARP_EXPORT ExceptionInfo* ColumnDecryptionProperties_Deep_Clone(const std::shared_ptr* properties, std::shared_ptr** clone) { - TRYCATCH(*clone = new std::shared_ptr((*properties)->DeepClone());) + TRYCATCH(*clone = new std::shared_ptr((*properties)->DeepClone());) } PARQUETSHARP_EXPORT void ColumnDecryptionProperties_Free(const std::shared_ptr* properties) diff --git a/cpp/ColumnEncryptionProperties.cpp b/cpp/ColumnEncryptionProperties.cpp index b52140a8..6e3c3f9b 100644 --- a/cpp/ColumnEncryptionProperties.cpp +++ b/cpp/ColumnEncryptionProperties.cpp @@ -11,7 +11,7 @@ extern "C" { PARQUETSHARP_EXPORT ExceptionInfo* ColumnEncryptionProperties_Deep_Clone(const std::shared_ptr* properties, std::shared_ptr** clone) { - TRYCATCH(*clone = new std::shared_ptr((*properties)->DeepClone());) + TRYCATCH(*clone = new std::shared_ptr((*properties)->DeepClone());) } PARQUETSHARP_EXPORT void ColumnEncryptionProperties_Free(const std::shared_ptr* properties) diff --git a/cpp/ColumnEncryptionPropertiesBuilder.cpp b/cpp/ColumnEncryptionPropertiesBuilder.cpp index 2814649e..bf448426 100644 --- a/cpp/ColumnEncryptionPropertiesBuilder.cpp +++ b/cpp/ColumnEncryptionPropertiesBuilder.cpp @@ -41,6 +41,6 @@ extern "C" PARQUETSHARP_EXPORT ExceptionInfo* ColumnEncryptionPropertiesBuilder_Build(ColumnEncryptionProperties::Builder* builder, std::shared_ptr** properties) { - TRYCATCH(*properties = new std::shared_ptr(builder->build());) + TRYCATCH(*properties = new std::shared_ptr(builder->build());) } } \ No newline at end of file diff --git a/cpp/ColumnPath.cpp b/cpp/ColumnPath.cpp index 677ddaff..049a9ff2 100644 --- a/cpp/ColumnPath.cpp +++ b/cpp/ColumnPath.cpp @@ -57,7 +57,7 @@ extern "C" for (size_t i = 0; i != v.size(); ++i) { - strings[i] = AllocateCString(AllocateCString(v[i])); + strings[i] = AllocateCString(v[i]); } *dot_vector = strings; diff --git a/cpp/Enums.cpp b/cpp/Enums.cpp index 9b4b911c..1561476f 100644 --- a/cpp/Enums.cpp +++ b/cpp/Enums.cpp @@ -23,6 +23,7 @@ namespace static_assert(Compression::LZ4_FRAME == 6); static_assert(Compression::LZO == 7); static_assert(Compression::BZ2 == 8); + static_assert(Compression::LZ4_HADOOP == 9); static_assert(Encoding::PLAIN == 0); static_assert(Encoding::PLAIN_DICTIONARY == 2); @@ -71,6 +72,7 @@ namespace static_assert(Repetition::REQUIRED == 0); static_assert(Repetition::OPTIONAL == 1); static_assert(Repetition::REPEATED == 2); + static_assert(Repetition::UNDEFINED == 3); static_assert(SortOrder::SIGNED == 0); static_assert(SortOrder::UNSIGNED == 1); diff --git a/cpp/FileDecryptionProperties.cpp b/cpp/FileDecryptionProperties.cpp index 1df629f8..88c46531 100644 --- a/cpp/FileDecryptionProperties.cpp +++ b/cpp/FileDecryptionProperties.cpp @@ -13,7 +13,7 @@ extern "C" { PARQUETSHARP_EXPORT ExceptionInfo* FileDecryptionProperties_Deep_Clone(const std::shared_ptr* properties, std::shared_ptr** clone) { - TRYCATCH(*clone = new std::shared_ptr((*properties)->DeepClone());) + TRYCATCH(*clone = new std::shared_ptr((*properties)->DeepClone());) } PARQUETSHARP_EXPORT void FileDecryptionProperties_Free(const std::shared_ptr* properties) diff --git a/cpp/FileEncryptionProperties.cpp b/cpp/FileEncryptionProperties.cpp index 10028a8e..98989d1c 100644 --- a/cpp/FileEncryptionProperties.cpp +++ b/cpp/FileEncryptionProperties.cpp @@ -11,7 +11,7 @@ extern "C" { PARQUETSHARP_EXPORT ExceptionInfo* FileEncryptionProperties_Deep_Clone(const std::shared_ptr* properties, std::shared_ptr** clone) { - TRYCATCH(*clone = new std::shared_ptr((*properties)->DeepClone());) + TRYCATCH(*clone = new std::shared_ptr((*properties)->DeepClone());) } PARQUETSHARP_EXPORT void FileEncryptionProperties_Free(const std::shared_ptr* properties) diff --git a/cpp/FileEncryptionPropertiesBuilder.cpp b/cpp/FileEncryptionPropertiesBuilder.cpp index e4790df4..969c358a 100644 --- a/cpp/FileEncryptionPropertiesBuilder.cpp +++ b/cpp/FileEncryptionPropertiesBuilder.cpp @@ -66,6 +66,6 @@ extern "C" PARQUETSHARP_EXPORT ExceptionInfo* FileEncryptionPropertiesBuilder_Build(FileEncryptionProperties::Builder* builder, std::shared_ptr** properties) { - TRYCATCH(*properties = new std::shared_ptr(builder->build());) + TRYCATCH(*properties = new std::shared_ptr(builder->build());) } } \ No newline at end of file diff --git a/cpp/FileMetaData.cpp b/cpp/FileMetaData.cpp index 64424a8a..dd9db9ea 100644 --- a/cpp/FileMetaData.cpp +++ b/cpp/FileMetaData.cpp @@ -42,7 +42,7 @@ extern "C" TRYCATCH ( const auto m = (*file_meta_data)->key_value_metadata(); - *key_value_metadata = m ? new std::shared_ptr(m) : nullptr; + *key_value_metadata = m ? new std::shared_ptr(m) : nullptr; ) } diff --git a/cpp/GroupNode.cpp b/cpp/GroupNode.cpp index 422a3d95..0eedff53 100644 --- a/cpp/GroupNode.cpp +++ b/cpp/GroupNode.cpp @@ -25,13 +25,13 @@ extern "C" nodes.push_back(*fields[i]); } - *groupNode = new std::shared_ptr(schema::GroupNode::Make(name, repetition, nodes, logical_type == nullptr ? nullptr : *logical_type)); + *groupNode = new std::shared_ptr(schema::GroupNode::Make(name, repetition, nodes, logical_type == nullptr ? nullptr : *logical_type)); ) } PARQUETSHARP_EXPORT ExceptionInfo* GroupNode_Field(const std::shared_ptr* group_node, int i, std::shared_ptr** field) { - TRYCATCH(*field = new std::shared_ptr((*group_node)->field(i));) + TRYCATCH(*field = new std::shared_ptr((*group_node)->field(i));) } PARQUETSHARP_EXPORT ExceptionInfo* GroupNode_Field_Count(const std::shared_ptr* group_node, int* field_count) diff --git a/cpp/KeyValueMetadata.cpp b/cpp/KeyValueMetadata.cpp index 102371fe..038f5a42 100644 --- a/cpp/KeyValueMetadata.cpp +++ b/cpp/KeyValueMetadata.cpp @@ -9,7 +9,7 @@ using namespace parquet; extern "C" { - PARQUETSHARP_EXPORT ExceptionInfo* KeyValueMetadata_Make(int64_t size, const char** keys, const char** values, std::shared_ptr** key_value_metadata) + PARQUETSHARP_EXPORT ExceptionInfo* KeyValueMetadata_Make(const int64_t size, const char** keys, const char** values, std::shared_ptr** key_value_metadata) { TRYCATCH ( diff --git a/cpp/LogicalType.cpp b/cpp/LogicalType.cpp index 467eb3f1..cd6e4936 100644 --- a/cpp/LogicalType.cpp +++ b/cpp/LogicalType.cpp @@ -38,77 +38,77 @@ extern "C" PARQUETSHARP_EXPORT ExceptionInfo* LogicalType_String(const std::shared_ptr** logical_type) { - TRYCATCH(*logical_type = new std::shared_ptr(LogicalType::String());) + TRYCATCH(*logical_type = new std::shared_ptr(LogicalType::String());) } PARQUETSHARP_EXPORT ExceptionInfo* LogicalType_Map(const std::shared_ptr** logical_type) { - TRYCATCH(*logical_type = new std::shared_ptr(LogicalType::Map());) + TRYCATCH(*logical_type = new std::shared_ptr(LogicalType::Map());) } PARQUETSHARP_EXPORT ExceptionInfo* LogicalType_List(const std::shared_ptr** logical_type) { - TRYCATCH(*logical_type = new std::shared_ptr(LogicalType::List());) + TRYCATCH(*logical_type = new std::shared_ptr(LogicalType::List());) } PARQUETSHARP_EXPORT ExceptionInfo* LogicalType_Enum(const std::shared_ptr** logical_type) { - TRYCATCH(*logical_type = new std::shared_ptr(LogicalType::Enum());) + TRYCATCH(*logical_type = new std::shared_ptr(LogicalType::Enum());) } PARQUETSHARP_EXPORT ExceptionInfo* LogicalType_Decimal(const int32_t precision, const int32_t scale, const std::shared_ptr** logical_type) { - TRYCATCH(*logical_type = new std::shared_ptr(LogicalType::Decimal(precision, scale));) + TRYCATCH(*logical_type = new std::shared_ptr(LogicalType::Decimal(precision, scale));) } PARQUETSHARP_EXPORT ExceptionInfo* LogicalType_Date(const std::shared_ptr** logical_type) { - TRYCATCH(*logical_type = new std::shared_ptr(LogicalType::Date());) + TRYCATCH(*logical_type = new std::shared_ptr(LogicalType::Date());) } PARQUETSHARP_EXPORT ExceptionInfo* LogicalType_Time(const bool is_adjusted_to_utc, const LogicalType::TimeUnit::unit time_unit, const std::shared_ptr** logical_type) { - TRYCATCH(*logical_type = new std::shared_ptr(LogicalType::Time(is_adjusted_to_utc, time_unit));) + TRYCATCH(*logical_type = new std::shared_ptr(LogicalType::Time(is_adjusted_to_utc, time_unit));) } PARQUETSHARP_EXPORT ExceptionInfo* LogicalType_Timestamp(const bool is_adjusted_to_utc, const LogicalType::TimeUnit::unit time_unit, const std::shared_ptr** logical_type) { - TRYCATCH(*logical_type = new std::shared_ptr(LogicalType::Timestamp(is_adjusted_to_utc, time_unit));) + TRYCATCH(*logical_type = new std::shared_ptr(LogicalType::Timestamp(is_adjusted_to_utc, time_unit));) } PARQUETSHARP_EXPORT ExceptionInfo* LogicalType_Interval(const std::shared_ptr** logical_type) { - TRYCATCH(*logical_type = new std::shared_ptr(LogicalType::Interval());) + TRYCATCH(*logical_type = new std::shared_ptr(LogicalType::Interval());) } PARQUETSHARP_EXPORT ExceptionInfo* LogicalType_Int(const int32_t bit_width, const bool is_signed, const std::shared_ptr** logical_type) { - TRYCATCH(*logical_type = new std::shared_ptr(LogicalType::Int(bit_width, is_signed));) + TRYCATCH(*logical_type = new std::shared_ptr(LogicalType::Int(bit_width, is_signed));) } PARQUETSHARP_EXPORT ExceptionInfo* LogicalType_Null(const std::shared_ptr** logical_type) { - TRYCATCH(*logical_type = new std::shared_ptr(LogicalType::Null());) + TRYCATCH(*logical_type = new std::shared_ptr(LogicalType::Null());) } PARQUETSHARP_EXPORT ExceptionInfo* LogicalType_JSON(const std::shared_ptr** logical_type) { - TRYCATCH(*logical_type = new std::shared_ptr(LogicalType::JSON());) + TRYCATCH(*logical_type = new std::shared_ptr(LogicalType::JSON());) } PARQUETSHARP_EXPORT ExceptionInfo* LogicalType_BSON(const std::shared_ptr** logical_type) { - TRYCATCH(*logical_type = new std::shared_ptr(LogicalType::BSON());) + TRYCATCH(*logical_type = new std::shared_ptr(LogicalType::BSON());) } PARQUETSHARP_EXPORT ExceptionInfo* LogicalType_UUID(const std::shared_ptr** logical_type) { - TRYCATCH(*logical_type = new std::shared_ptr(LogicalType::UUID());) + TRYCATCH(*logical_type = new std::shared_ptr(LogicalType::UUID());) } PARQUETSHARP_EXPORT ExceptionInfo* LogicalType_None(const std::shared_ptr** logical_type) { - TRYCATCH(*logical_type = new std::shared_ptr(LogicalType::None());) + TRYCATCH(*logical_type = new std::shared_ptr(LogicalType::None());) } // Typed properties diff --git a/cpp/Node.cpp b/cpp/Node.cpp index fb895395..da43084e 100644 --- a/cpp/Node.cpp +++ b/cpp/Node.cpp @@ -25,7 +25,7 @@ extern "C" PARQUETSHARP_EXPORT ExceptionInfo* Node_Logical_Type(const std::shared_ptr* node, const std::shared_ptr** logical_type) { - TRYCATCH(*logical_type = new std::shared_ptr((*node)->logical_type());) + TRYCATCH(*logical_type = new std::shared_ptr((*node)->logical_type());) } PARQUETSHARP_EXPORT ExceptionInfo* Node_Name(const std::shared_ptr* node, const char** name) diff --git a/cpp/OutputStream.cpp b/cpp/OutputStream.cpp index 0db0d196..9f979a49 100644 --- a/cpp/OutputStream.cpp +++ b/cpp/OutputStream.cpp @@ -1,6 +1,5 @@ #include "cpp/ParquetSharpExport.h" -#include "ExceptionInfo.h" #include diff --git a/cpp/ParquetFileReader.cpp b/cpp/ParquetFileReader.cpp index 8b99ec57..911066de 100644 --- a/cpp/ParquetFileReader.cpp +++ b/cpp/ParquetFileReader.cpp @@ -36,11 +36,11 @@ extern "C" PARQUETSHARP_EXPORT ExceptionInfo* ParquetFileReader_MetaData(const ParquetFileReader* reader, std::shared_ptr** fileMetaData) { - TRYCATCH(*fileMetaData = new std::shared_ptr(reader->metadata());) + TRYCATCH(*fileMetaData = new std::shared_ptr(reader->metadata());) } PARQUETSHARP_EXPORT ExceptionInfo* ParquetFileReader_RowGroup(ParquetFileReader* reader, int i, std::shared_ptr** rowGroupReader) { - TRYCATCH(*rowGroupReader = new std::shared_ptr(reader->RowGroup(i));) + TRYCATCH(*rowGroupReader = new std::shared_ptr(reader->RowGroup(i));) } } diff --git a/cpp/ParquetFileWriter.cpp b/cpp/ParquetFileWriter.cpp index d9c0cd21..f4f06f3d 100644 --- a/cpp/ParquetFileWriter.cpp +++ b/cpp/ParquetFileWriter.cpp @@ -73,7 +73,7 @@ extern "C" PARQUETSHARP_EXPORT ExceptionInfo* ParquetFileWriter_Properties(ParquetFileWriter* writer, const std::shared_ptr** properties) { - TRYCATCH(*properties = new std::shared_ptr(writer->properties());) + TRYCATCH(*properties = new std::shared_ptr(writer->properties());) } PARQUETSHARP_EXPORT ExceptionInfo* ParquetFileWriter_Schema(ParquetFileWriter* writer, const SchemaDescriptor** schema) @@ -90,8 +90,8 @@ extern "C" { TRYCATCH ( - const auto m = writer->key_value_metadata(); - *key_value_metadata = m ? new std::shared_ptr(m) : nullptr; + const auto& m = writer->key_value_metadata(); + *key_value_metadata = m ? new std::shared_ptr(m) : nullptr; ) } @@ -100,7 +100,7 @@ extern "C" TRYCATCH ( const auto m = writer->metadata(); - *metadata = m ? new std::shared_ptr(m) : nullptr; + *metadata = m ? new std::shared_ptr(m) : nullptr; ) } } diff --git a/cpp/RandomAccessFile.cpp b/cpp/RandomAccessFile.cpp index ec1ca66b..687046b9 100644 --- a/cpp/RandomAccessFile.cpp +++ b/cpp/RandomAccessFile.cpp @@ -1,6 +1,5 @@ #include "cpp/ParquetSharpExport.h" -#include "ExceptionInfo.h" #include diff --git a/cpp/ReaderProperties.cpp b/cpp/ReaderProperties.cpp index cac0aa1c..f2c28d08 100644 --- a/cpp/ReaderProperties.cpp +++ b/cpp/ReaderProperties.cpp @@ -1,6 +1,5 @@ #include "cpp/ParquetSharpExport.h" -#include "CString.h" #include "ExceptionInfo.h" #include @@ -53,8 +52,8 @@ extern "C" { TRYCATCH ( - const auto p = reader_properties->file_decryption_properties(); - *file_decryption_properties = p ? new std::shared_ptr(p) : nullptr; + const auto& p = reader_properties->file_decryption_properties(); + *file_decryption_properties = p ? new std::shared_ptr(p) : nullptr; ) } } diff --git a/cpp/RowGroupReader.cpp b/cpp/RowGroupReader.cpp index 7acb72ee..d81cbca7 100644 --- a/cpp/RowGroupReader.cpp +++ b/cpp/RowGroupReader.cpp @@ -15,7 +15,7 @@ extern "C" PARQUETSHARP_EXPORT ExceptionInfo* RowGroupReader_Column(const std::shared_ptr* row_group_reader, int i, std::shared_ptr** column_reader) { - TRYCATCH(*column_reader = new std::shared_ptr((*row_group_reader)->Column(i));) + TRYCATCH(*column_reader = new std::shared_ptr((*row_group_reader)->Column(i));) } PARQUETSHARP_EXPORT ExceptionInfo* RowGroupReader_Metadata(const std::shared_ptr* row_group_reader, const RowGroupMetaData** row_group_meta_data) diff --git a/cpp/WriterPropertiesBuilder.cpp b/cpp/WriterPropertiesBuilder.cpp index 79e00bb1..4b36935f 100644 --- a/cpp/WriterPropertiesBuilder.cpp +++ b/cpp/WriterPropertiesBuilder.cpp @@ -21,7 +21,7 @@ extern "C" PARQUETSHARP_EXPORT ExceptionInfo* WriterPropertiesBuilder_Build(WriterProperties::Builder* builder, const std::shared_ptr** writerProperties) { - TRYCATCH(*writerProperties = new std::shared_ptr(builder->build());); + TRYCATCH(*writerProperties = new std::shared_ptr(builder->build());) } // Dictonary enable/disable diff --git a/csharp.test/TestPhysicalTypeRoundtrip.cs b/csharp.test/TestPhysicalTypeRoundtrip.cs index 1d2deec1..72ead9e2 100644 --- a/csharp.test/TestPhysicalTypeRoundtrip.cs +++ b/csharp.test/TestPhysicalTypeRoundtrip.cs @@ -118,14 +118,14 @@ private static void AssertReadRoundtrip(ResizableBuffer buffer, ExpectedColumn[] var numRows = expectedColumns.First().Values.Length; - Assert.AreEqual("parquet-cpp-arrow version 4.0.0", fileMetaData.CreatedBy); + Assert.AreEqual("parquet-cpp-arrow version 5.0.0", fileMetaData.CreatedBy); Assert.AreEqual(new Dictionary {{"case", "Test"}, {"Awesome", "true"}}, fileMetaData.KeyValueMetadata); Assert.AreEqual(expectedColumns.Length, fileMetaData.NumColumns); Assert.AreEqual(numRows, fileMetaData.NumRows); Assert.AreEqual(1, fileMetaData.NumRowGroups); Assert.AreEqual(1 + expectedColumns.Length, fileMetaData.NumSchemaElements); Assert.AreEqual(ParquetVersion.PARQUET_1_0, fileMetaData.Version); - Assert.AreEqual("parquet-cpp-arrow version 4.0.0", fileMetaData.WriterVersion.ToString()); + Assert.AreEqual("parquet-cpp-arrow version 5.0.0", fileMetaData.WriterVersion.ToString()); using var rowGroupReader = fileReader.RowGroup(0); var rowGroupMetaData = rowGroupReader.MetaData; diff --git a/csharp.test/TestWriterProperties.cs b/csharp.test/TestWriterProperties.cs index 79ae759c..c26715a8 100644 --- a/csharp.test/TestWriterProperties.cs +++ b/csharp.test/TestWriterProperties.cs @@ -15,7 +15,7 @@ public static void TestDefaultProperties() { var p = WriterProperties.GetDefaultWriterProperties(); - Assert.AreEqual("parquet-cpp-arrow version 4.0.0", p.CreatedBy); + Assert.AreEqual("parquet-cpp-arrow version 5.0.0", p.CreatedBy); Assert.AreEqual(Compression.Uncompressed, p.Compression(new ColumnPath("anypath"))); Assert.AreEqual(int.MinValue, p.CompressionLevel(new ColumnPath("anypath"))); Assert.AreEqual(1024 * 1024, p.DataPageSize); diff --git a/csharp/Compression.cs b/csharp/Compression.cs index 71248502..fc4ef2e3 100644 --- a/csharp/Compression.cs +++ b/csharp/Compression.cs @@ -10,6 +10,7 @@ public enum Compression Lz4 = 5, Lz4Frame = 6, Lzo = 7, - Bz2 = 8 + Bz2 = 8, + Lz4Hadoop = 9 } } diff --git a/csharp/ParquetSharp.csproj b/csharp/ParquetSharp.csproj index 0b4aed6a..41e697ea 100644 --- a/csharp/ParquetSharp.csproj +++ b/csharp/ParquetSharp.csproj @@ -13,7 +13,7 @@ true true 1591; - 4.0.0 + 5.0.0-beta1 G-Research G-Research ParquetSharp diff --git a/csharp/Repetition.cs b/csharp/Repetition.cs index 619b3c1d..f8fdfbc2 100644 --- a/csharp/Repetition.cs +++ b/csharp/Repetition.cs @@ -4,6 +4,7 @@ public enum Repetition { Required = 0, Optional = 1, - Repeated = 2 + Repeated = 2, + Undefined = 3 } } diff --git a/vcpkg_version.txt b/vcpkg_version.txt index 99c00294..c77c82bb 100644 --- a/vcpkg_version.txt +++ b/vcpkg_version.txt @@ -1 +1 @@ -https://github.com/microsoft/vcpkg.git 4dc864e2401f2ed3230c9042a4dd56f6d1c30360 +https://github.com/microsoft/vcpkg.git ba69c09fab296d975ee4f578d070f9c67da21dd5