You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by cu...@apache.org on 2024/02/08 22:26:12 UTC
(arrow) branch main updated: GH-39916: [C#] Restore support for .NET 4.6.2 (#40008)
This is an automated email from the ASF dual-hosted git repository.
curth pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/main by this push:
new f9a88e5398 GH-39916: [C#] Restore support for .NET 4.6.2 (#40008)
f9a88e5398 is described below
commit f9a88e5398fe6ec406759e55935d17bb09f9569b
Author: Curt Hagenlocher <cu...@hagenlocher.org>
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 <cu...@hagenlocher.org>
Signed-off-by: Curt Hagenlocher <cu...@hagenlocher.org>
---
.../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 d8a92ff756..c422da56b4 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);