This is an automated email from the ASF dual-hosted git repository. raulcd pushed a commit to branch maint-15.0.x in repository https://gitbox.apache.org/repos/asf/arrow.git
commit ecfc9979c6ed6884b35c8f4d659e0721c109ad32 Author: Curt Hagenlocher <[email protected]> AuthorDate: Thu Feb 8 14:26:06 2024 -0800 GH-39916: [C#] Restore support for .NET 4.6.2 (#40008) ### What changes are included in this PR? Project targets have been added for net462 which is still in support. A few tests have been modified to allow them to build against that target. ### Are these changes tested? Yes. ### Are there any user-facing changes? There are new build artifacts for Apache.Arrow.dll and Apache.Arrow.Compression.dll. * Closes: #39916 Authored-by: Curt Hagenlocher <[email protected]> Signed-off-by: Curt Hagenlocher <[email protected]> --- .../Apache.Arrow.Compression/Apache.Arrow.Compression.csproj | 8 +++++++- csharp/src/Apache.Arrow/Apache.Arrow.csproj | 12 +++++++++--- .../Apache.Arrow/Extensions/TupleExtensions.netstandard.cs | 7 +++++++ csharp/test/Apache.Arrow.Tests/Apache.Arrow.Tests.csproj | 2 +- csharp/test/Apache.Arrow.Tests/BinaryArrayBuilderTests.cs | 8 ++++---- 5 files changed, 28 insertions(+), 9 deletions(-) diff --git a/csharp/src/Apache.Arrow.Compression/Apache.Arrow.Compression.csproj b/csharp/src/Apache.Arrow.Compression/Apache.Arrow.Compression.csproj index fded629112..6988567193 100644 --- a/csharp/src/Apache.Arrow.Compression/Apache.Arrow.Compression.csproj +++ b/csharp/src/Apache.Arrow.Compression/Apache.Arrow.Compression.csproj @@ -1,10 +1,16 @@ <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> - <TargetFramework>netstandard2.0</TargetFramework> <Description>Provides decompression support for the Arrow IPC format</Description> </PropertyGroup> + <PropertyGroup Condition="'$(IsWindows)'=='true'"> + <TargetFrameworks>netstandard2.0;net462</TargetFrameworks> + </PropertyGroup> + <PropertyGroup Condition="'$(IsWindows)'!='true'"> + <TargetFrameworks>netstandard2.0</TargetFrameworks> + </PropertyGroup> + <ItemGroup> <PackageReference Include="K4os.Compression.LZ4.Streams" Version="1.3.6" /> <PackageReference Include="ZstdSharp.Port" Version="0.7.3" /> diff --git a/csharp/src/Apache.Arrow/Apache.Arrow.csproj b/csharp/src/Apache.Arrow/Apache.Arrow.csproj index 3a229f4ffc..c4bb64b73a 100644 --- a/csharp/src/Apache.Arrow/Apache.Arrow.csproj +++ b/csharp/src/Apache.Arrow/Apache.Arrow.csproj @@ -1,14 +1,20 @@ <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> - <TargetFrameworks>netstandard2.0;net6.0</TargetFrameworks> <AllowUnsafeBlocks>true</AllowUnsafeBlocks> <DefineConstants>$(DefineConstants);UNSAFE_BYTEBUFFER;BYTEBUFFER_NO_BOUNDS_CHECK;ENABLE_SPAN_T</DefineConstants> <Description>Apache Arrow is a cross-language development platform for in-memory data. It specifies a standardized language-independent columnar memory format for flat and hierarchical data, organized for efficient analytic operations on modern hardware.</Description> </PropertyGroup> - <ItemGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETStandard'"> + <PropertyGroup Condition="'$(IsWindows)'=='true'"> + <TargetFrameworks>netstandard2.0;net6.0;net462</TargetFrameworks> + </PropertyGroup> + <PropertyGroup Condition="'$(IsWindows)'!='true'"> + <TargetFrameworks>netstandard2.0;net6.0</TargetFrameworks> + </PropertyGroup> + + <ItemGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETStandard' or '$(TargetFramework)' == 'net462'"> <PackageReference Include="System.Buffers" Version="4.5.1" /> <PackageReference Include="System.Memory" Version="4.5.5" /> <PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="4.7.1" /> @@ -34,7 +40,7 @@ </EmbeddedResource> </ItemGroup> - <ItemGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETStandard'"> + <ItemGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETStandard' or '$(TargetFramework)' == 'net462'"> <Compile Remove="Extensions\StreamExtensions.netcoreapp.cs" /> </ItemGroup> <ItemGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp'"> diff --git a/csharp/src/Apache.Arrow/Extensions/TupleExtensions.netstandard.cs b/csharp/src/Apache.Arrow/Extensions/TupleExtensions.netstandard.cs index fe42075f14..e0e0f57070 100644 --- a/csharp/src/Apache.Arrow/Extensions/TupleExtensions.netstandard.cs +++ b/csharp/src/Apache.Arrow/Extensions/TupleExtensions.netstandard.cs @@ -25,5 +25,12 @@ namespace Apache.Arrow item1 = value.Item1; item2 = value.Item2; } + + public static void Deconstruct<T1, T2, T3>(this Tuple<T1, T2, T3> value, out T1 item1, out T2 item2, out T3 item3) + { + item1 = value.Item1; + item2 = value.Item2; + item3 = value.Item3; + } } } diff --git a/csharp/test/Apache.Arrow.Tests/Apache.Arrow.Tests.csproj b/csharp/test/Apache.Arrow.Tests/Apache.Arrow.Tests.csproj index 0afd1490e7..d8f7a9566b 100644 --- a/csharp/test/Apache.Arrow.Tests/Apache.Arrow.Tests.csproj +++ b/csharp/test/Apache.Arrow.Tests/Apache.Arrow.Tests.csproj @@ -7,7 +7,7 @@ </PropertyGroup> <PropertyGroup Condition="'$(IsWindows)'=='true'"> - <TargetFrameworks>net7.0;net472</TargetFrameworks> + <TargetFrameworks>net7.0;net472;net462</TargetFrameworks> </PropertyGroup> <PropertyGroup Condition="'$(IsWindows)'!='true'"> <TargetFrameworks>net7.0</TargetFrameworks> diff --git a/csharp/test/Apache.Arrow.Tests/BinaryArrayBuilderTests.cs b/csharp/test/Apache.Arrow.Tests/BinaryArrayBuilderTests.cs index 4c2b050d0c..447572dda0 100644 --- a/csharp/test/Apache.Arrow.Tests/BinaryArrayBuilderTests.cs +++ b/csharp/test/Apache.Arrow.Tests/BinaryArrayBuilderTests.cs @@ -83,7 +83,7 @@ namespace Apache.Arrow.Tests builder.AppendRange(initialContents); int initialLength = builder.Length; int expectedLength = initialLength + 1; - var expectedArrayContents = initialContents.Append(new[] { singleByte }); + var expectedArrayContents = initialContents.Concat(new[] { new[] { singleByte } }); // Act var actualReturnValue = builder.Append(singleByte); @@ -130,7 +130,7 @@ namespace Apache.Arrow.Tests builder.AppendRange(initialContents); int initialLength = builder.Length; int expectedLength = initialLength + 1; - var expectedArrayContents = initialContents.Append(null); + var expectedArrayContents = initialContents.Concat(new byte[][] { null }); // Act var actualReturnValue = builder.AppendNull(); @@ -180,7 +180,7 @@ namespace Apache.Arrow.Tests int initialLength = builder.Length; var span = (ReadOnlySpan<byte>)bytes; int expectedLength = initialLength + 1; - var expectedArrayContents = initialContents.Append(bytes); + var expectedArrayContents = initialContents.Concat(new[] { bytes }); // Act var actualReturnValue = builder.Append(span); @@ -230,7 +230,7 @@ namespace Apache.Arrow.Tests int initialLength = builder.Length; int expectedLength = initialLength + 1; var enumerable = (IEnumerable<byte>)bytes; - var expectedArrayContents = initialContents.Append(bytes); + var expectedArrayContents = initialContents.Concat(new[] { bytes }); // Act var actualReturnValue = builder.Append(enumerable);
