Skip to content

Commit b0dde48

Browse files
authored
Remove support for net6.0 (npgsql#5947)
Closes npgsql#5946
1 parent 1d93236 commit b0dde48

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+36
-951
lines changed

global.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
"sdk": {
33
"version": "9.0.100",
44
"rollForward": "latestMajor",
5-
"allowPrerelease": "false"
5+
"allowPrerelease": false
66
}
77
}

src/Directory.Build.props

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,8 @@
33

44
<PropertyGroup>
55
<GenerateDocumentationFile>true</GenerateDocumentationFile>
6-
<!-- Compatible from net6.0 onwards (we get warnings otherwise). This implies IsTrimmable as well -->
7-
<IsAotCompatible Condition=" $([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net7.0')) ">true</IsAotCompatible>
86
</PropertyGroup>
97

10-
<ItemGroup>
11-
<Compile Include="..\Shared\*.cs" />
12-
</ItemGroup>
13-
148
<ItemGroup>
159
<PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
1610
</ItemGroup>

src/Npgsql.DependencyInjection/Npgsql.DependencyInjection.csproj

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,7 @@
22

33
<PropertyGroup>
44
<Authors>Shay Rojansky</Authors>
5-
<!-- DbDataSource was introduced to .NET in net7.0. Before that Npgsql has its own built-in copy. -->
6-
<!-- This is why we have to build against both frameworks. -->
7-
<TargetFrameworks>net6.0;net8.0</TargetFrameworks>
8-
<TargetFrameworks Condition="'$(DeveloperBuild)' == 'True'">net8.0</TargetFrameworks>
5+
<TargetFramework>net8.0</TargetFramework>
96
<PackageTags>npgsql;postgresql;postgres;ado;ado.net;database;sql;di;dependency injection</PackageTags>
107
<PackageReadmeFile>README.md</PackageReadmeFile>
118
</PropertyGroup>

src/Npgsql.GeoJSON/Npgsql.GeoJSON.csproj

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
<Authors>Yoh Deadfall;Shay Rojansky</Authors>
44
<Description>GeoJSON plugin for Npgsql, allowing mapping of PostGIS geometry types to GeoJSON types.</Description>
55
<PackageTags>npgsql;postgresql;postgres;postgis;geojson;spatial;ado;ado.net;database;sql</PackageTags>
6-
<TargetFramework>net6.0</TargetFramework>
7-
<TargetFramework Condition="'$(DeveloperBuild)' == 'True'">net8.0</TargetFramework>
6+
<TargetFramework>net8.0</TargetFramework>
87
<NoWarn>$(NoWarn);NPG9001</NoWarn> <!-- Converter-related APIs are experimental -->
98
</PropertyGroup>
109

src/Npgsql.Json.NET/Npgsql.Json.NET.csproj

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
<Authors>Shay Rojansky</Authors>
44
<Description>Json.NET plugin for Npgsql, allowing transparent serialization/deserialization of JSON objects directly to and from the database.</Description>
55
<PackageTags>npgsql;postgresql;json;postgres;ado;ado.net;database;sql</PackageTags>
6-
<TargetFramework>net6.0</TargetFramework>
7-
<TargetFramework Condition="'$(DeveloperBuild)' == 'True'">net8.0</TargetFramework>
6+
<TargetFramework>net8.0</TargetFramework>
87
<Nullable>enable</Nullable>
98
<NoWarn>$(NoWarn);NPG9001</NoWarn> <!-- Converter-related APIs are experimental -->
109
</PropertyGroup>

src/Npgsql.NetTopologySuite/Npgsql.NetTopologySuite.csproj

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
<Description>NetTopologySuite plugin for Npgsql, allowing mapping of PostGIS geometry types to NetTopologySuite types.</Description>
55
<PackageTags>npgsql;postgresql;postgres;postgis;spatial;nettopologysuite;nts;ado;ado.net;database;sql</PackageTags>
66
<PackageReadmeFile>README.md</PackageReadmeFile>
7-
<TargetFramework>net6.0</TargetFramework>
8-
<TargetFramework Condition="'$(DeveloperBuild)' == 'True'">net8.0</TargetFramework>
7+
<TargetFramework>net8.0</TargetFramework>
98
<NoWarn>$(NoWarn);NU5104</NoWarn>
109
<NoWarn>$(NoWarn);NPG9001</NoWarn> <!-- Converter-related APIs are experimental -->
1110
</PropertyGroup>

src/Npgsql.NodaTime/Npgsql.NodaTime.csproj

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
<Description>NodaTime plugin for Npgsql, allowing mapping of PostgreSQL date/time types to NodaTime types.</Description>
55
<PackageTags>npgsql;postgresql;postgres;nodatime;date;time;ado;ado;net;database;sql</PackageTags>
66
<PackageReadmeFile>README.md</PackageReadmeFile>
7-
<TargetFramework>net6.0</TargetFramework>
8-
<TargetFramework Condition="'$(DeveloperBuild)' == 'True'">net8.0</TargetFramework>
7+
<TargetFramework>net8.0</TargetFramework>
98
<NoWarn>$(NoWarn);NPG9001</NoWarn> <!-- Converter-related APIs are experimental -->
109
</PropertyGroup>
1110

src/Npgsql.OpenTelemetry/Npgsql.OpenTelemetry.csproj

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22

33
<PropertyGroup>
44
<Authors>Shay Rojansky</Authors>
5-
<TargetFramework>net6.0</TargetFramework>
6-
<TargetFramework Condition="'$(DeveloperBuild)' == 'True'">net8.0</TargetFramework>
5+
<TargetFramework>net8.0</TargetFramework>
76
<PackageTags>npgsql;postgresql;postgres;ado;ado.net;database;sql;opentelemetry;tracing;diagnostics;instrumentation</PackageTags>
87
<PackageReadmeFile>README.md</PackageReadmeFile>
98
</PropertyGroup>

src/Npgsql/Internal/Converters/Internal/InternalCharConverter.cs

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -4,40 +4,14 @@
44
// ReSharper disable once CheckNamespace
55
namespace Npgsql.Internal.Converters;
66

7-
sealed class InternalCharConverter<T> : PgBufferedConverter<T>
8-
#if NET7_0_OR_GREATER
9-
where T : INumberBase<T>
10-
#endif
7+
sealed class InternalCharConverter<T> : PgBufferedConverter<T> where T : INumberBase<T>
118
{
129
public override bool CanConvert(DataFormat format, out BufferRequirements bufferRequirements)
1310
{
1411
bufferRequirements = BufferRequirements.CreateFixedSize(sizeof(byte));
1512
return format is DataFormat.Binary;
1613
}
1714

18-
#if NET7_0_OR_GREATER
1915
protected override T ReadCore(PgReader reader) => T.CreateChecked(reader.ReadByte());
2016
protected override void WriteCore(PgWriter writer, T value) => writer.WriteByte(byte.CreateChecked(value));
21-
#else
22-
protected override T ReadCore(PgReader reader)
23-
{
24-
var value = reader.ReadByte();
25-
if (typeof(byte) == typeof(T))
26-
return (T)(object)value;
27-
if (typeof(char) == typeof(T))
28-
return (T)(object)(char)value;
29-
30-
throw new NotSupportedException();
31-
}
32-
33-
protected override void WriteCore(PgWriter writer, T value)
34-
{
35-
if (typeof(byte) == typeof(T))
36-
writer.WriteByte((byte)(object)value!);
37-
else if (typeof(char) == typeof(T))
38-
writer.WriteByte(checked((byte)(char)(object)value!));
39-
else
40-
throw new NotSupportedException();
41-
}
42-
#endif
4317
}

src/Npgsql/Internal/Converters/MoneyConverter.cs

Lines changed: 4 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -3,72 +3,17 @@
33

44
namespace Npgsql.Internal.Converters;
55

6-
sealed class MoneyConverter<T> : PgBufferedConverter<T>
7-
#if NET7_0_OR_GREATER
8-
where T : INumberBase<T>
9-
#endif
6+
sealed class MoneyConverter<T> : PgBufferedConverter<T> where T : INumberBase<T>
107
{
118
public override bool CanConvert(DataFormat format, out BufferRequirements bufferRequirements)
129
{
1310
bufferRequirements = BufferRequirements.CreateFixedSize(sizeof(long));
1411
return format is DataFormat.Binary;
1512
}
13+
1614
protected override T ReadCore(PgReader reader) => ConvertTo(new PgMoney(reader.ReadInt64()));
1715
protected override void WriteCore(PgWriter writer, T value) => writer.WriteInt64(ConvertFrom(value).GetValue());
1816

19-
static PgMoney ConvertFrom(T value)
20-
{
21-
#if !NET7_0_OR_GREATER
22-
if (typeof(short) == typeof(T))
23-
return new PgMoney((decimal)(short)(object)value!);
24-
if (typeof(int) == typeof(T))
25-
return new PgMoney((decimal)(int)(object)value!);
26-
if (typeof(long) == typeof(T))
27-
return new PgMoney((decimal)(long)(object)value!);
28-
29-
if (typeof(byte) == typeof(T))
30-
return new PgMoney((decimal)(byte)(object)value!);
31-
if (typeof(sbyte) == typeof(T))
32-
return new PgMoney((decimal)(sbyte)(object)value!);
33-
34-
if (typeof(float) == typeof(T))
35-
return new PgMoney((decimal)(float)(object)value!);
36-
if (typeof(double) == typeof(T))
37-
return new PgMoney((decimal)(double)(object)value!);
38-
if (typeof(decimal) == typeof(T))
39-
return new PgMoney((decimal)(object)value!);
40-
41-
throw new NotSupportedException();
42-
#else
43-
return new PgMoney(decimal.CreateChecked(value));
44-
#endif
45-
}
46-
47-
static T ConvertTo(PgMoney money)
48-
{
49-
#if !NET7_0_OR_GREATER
50-
if (typeof(short) == typeof(T))
51-
return (T)(object)(short)money.ToDecimal();
52-
if (typeof(int) == typeof(T))
53-
return (T)(object)(int)money.ToDecimal();
54-
if (typeof(long) == typeof(T))
55-
return (T)(object)(long)money.ToDecimal();
56-
57-
if (typeof(byte) == typeof(T))
58-
return (T)(object)(byte)money.ToDecimal();
59-
if (typeof(sbyte) == typeof(T))
60-
return (T)(object)(sbyte)money.ToDecimal();
61-
62-
if (typeof(float) == typeof(T))
63-
return (T)(object)(float)money.ToDecimal();
64-
if (typeof(double) == typeof(T))
65-
return (T)(object)(double)money.ToDecimal();
66-
if (typeof(decimal) == typeof(T))
67-
return (T)(object)money.ToDecimal();
68-
69-
throw new NotSupportedException();
70-
#else
71-
return T.CreateChecked(money.ToDecimal());
72-
#endif
73-
}
17+
static PgMoney ConvertFrom(T value) => new(decimal.CreateChecked(value));
18+
static T ConvertTo(PgMoney money) => T.CreateChecked(money.ToDecimal());
7419
}

src/Npgsql/Internal/Converters/Networking/IPNetworkConverter.cs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
#if NET8_0_OR_GREATER
2-
3-
using System.Net;
1+
using System.Net;
42

53
// ReSharper disable once CheckNamespace
64
namespace Npgsql.Internal.Converters;
@@ -22,5 +20,3 @@ protected override IPNetwork ReadCore(PgReader reader)
2220
protected override void WriteCore(PgWriter writer, IPNetwork value)
2321
=> NpgsqlInetConverter.WriteImpl(writer, (value.BaseAddress, (byte)value.PrefixLength), isCidr: true);
2422
}
25-
26-
#endif

src/Npgsql/Internal/Converters/Primitive/DoubleConverter.cs

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -4,40 +4,14 @@
44
// ReSharper disable once CheckNamespace
55
namespace Npgsql.Internal.Converters;
66

7-
sealed class DoubleConverter<T> : PgBufferedConverter<T>
8-
#if NET7_0_OR_GREATER
9-
where T : INumberBase<T>
10-
#endif
7+
sealed class DoubleConverter<T> : PgBufferedConverter<T> where T : INumberBase<T>
118
{
129
public override bool CanConvert(DataFormat format, out BufferRequirements bufferRequirements)
1310
{
1411
bufferRequirements = BufferRequirements.CreateFixedSize(sizeof(double));
1512
return format is DataFormat.Binary;
1613
}
1714

18-
#if NET7_0_OR_GREATER
1915
protected override T ReadCore(PgReader reader) => T.CreateChecked(reader.ReadDouble());
2016
protected override void WriteCore(PgWriter writer, T value) => writer.WriteDouble(double.CreateChecked(value));
21-
#else
22-
protected override T ReadCore(PgReader reader)
23-
{
24-
var value = reader.ReadDouble();
25-
if (typeof(float) == typeof(T))
26-
return (T)(object)value;
27-
if (typeof(double) == typeof(T))
28-
return (T)(object)value;
29-
30-
throw new NotSupportedException();
31-
}
32-
33-
protected override void WriteCore(PgWriter writer, T value)
34-
{
35-
if (typeof(float) == typeof(T))
36-
writer.WriteDouble((float)(object)value!);
37-
else if (typeof(double) == typeof(T))
38-
writer.WriteDouble((double)(object)value!);
39-
else
40-
throw new NotSupportedException();
41-
}
42-
#endif
4317
}

src/Npgsql/Internal/Converters/Primitive/GuidUuidConverter.cs

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -11,35 +11,15 @@ public override bool CanConvert(DataFormat format, out BufferRequirements buffer
1111
bufferRequirements = BufferRequirements.CreateFixedSize(16 * sizeof(byte));
1212
return format is DataFormat.Binary;
1313
}
14+
1415
protected override Guid ReadCore(PgReader reader)
15-
{
16-
#if NET8_0_OR_GREATER
17-
return new Guid(reader.ReadBytes(16).FirstSpan, bigEndian: true);
18-
#else
19-
return new GuidRaw
20-
{
21-
Data1 = reader.ReadInt32(),
22-
Data2 = reader.ReadInt16(),
23-
Data3 = reader.ReadInt16(),
24-
Data4 = BitConverter.IsLittleEndian ? BinaryPrimitives.ReverseEndianness(reader.ReadInt64()) : reader.ReadInt64()
25-
}.Value;
26-
#endif
27-
}
16+
=> new(reader.ReadBytes(16).FirstSpan, bigEndian: true);
2817

2918
protected override void WriteCore(PgWriter writer, Guid value)
3019
{
31-
#if NET8_0_OR_GREATER
3220
Span<byte> bytes = stackalloc byte[16];
3321
value.TryWriteBytes(bytes, bigEndian: true, out _);
3422
writer.WriteBytes(bytes);
35-
#else
36-
var raw = new GuidRaw(value);
37-
38-
writer.WriteInt32(raw.Data1);
39-
writer.WriteInt16(raw.Data2);
40-
writer.WriteInt16(raw.Data3);
41-
writer.WriteInt64(BitConverter.IsLittleEndian ? BinaryPrimitives.ReverseEndianness(raw.Data4) : raw.Data4);
42-
#endif
4323
}
4424

4525
#if !NET8_0_OR_GREATER

src/Npgsql/Internal/Converters/Primitive/Int2Converter.cs

Lines changed: 2 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -4,67 +4,14 @@
44
// ReSharper disable once CheckNamespace
55
namespace Npgsql.Internal.Converters;
66

7-
sealed class Int2Converter<T> : PgBufferedConverter<T>
8-
#if NET7_0_OR_GREATER
9-
where T : INumberBase<T>
10-
#endif
7+
sealed class Int2Converter<T> : PgBufferedConverter<T> where T : INumberBase<T>
118
{
129
public override bool CanConvert(DataFormat format, out BufferRequirements bufferRequirements)
1310
{
1411
bufferRequirements = BufferRequirements.CreateFixedSize(sizeof(short));
1512
return format is DataFormat.Binary;
1613
}
17-
#if NET7_0_OR_GREATER
14+
1815
protected override T ReadCore(PgReader reader) => T.CreateChecked(reader.ReadInt16());
1916
protected override void WriteCore(PgWriter writer, T value) => writer.WriteInt16(short.CreateChecked(value));
20-
#else
21-
protected override T ReadCore(PgReader reader)
22-
{
23-
var value = reader.ReadInt16();
24-
if (typeof(short) == typeof(T))
25-
return (T)(object)value;
26-
if (typeof(int) == typeof(T))
27-
return (T)(object)(int)value;
28-
if (typeof(long) == typeof(T))
29-
return (T)(object)(long)value;
30-
31-
if (typeof(byte) == typeof(T))
32-
return (T)(object)checked((byte)value);
33-
if (typeof(sbyte) == typeof(T))
34-
return (T)(object)checked((sbyte)value);
35-
36-
if (typeof(float) == typeof(T))
37-
return (T)(object)(float)value;
38-
if (typeof(double) == typeof(T))
39-
return (T)(object)(double)value;
40-
if (typeof(decimal) == typeof(T))
41-
return (T)(object)(decimal)value;
42-
43-
throw new NotSupportedException();
44-
}
45-
46-
protected override void WriteCore(PgWriter writer, T value)
47-
{
48-
if (typeof(short) == typeof(T))
49-
writer.WriteInt16((short)(object)value!);
50-
else if (typeof(int) == typeof(T))
51-
writer.WriteInt16(checked((short)(int)(object)value!));
52-
else if (typeof(long) == typeof(T))
53-
writer.WriteInt16(checked((short)(long)(object)value!));
54-
55-
else if (typeof(byte) == typeof(T))
56-
writer.WriteInt16((byte)(object)value!);
57-
else if (typeof(sbyte) == typeof(T))
58-
writer.WriteInt16((sbyte)(object)value!);
59-
60-
else if (typeof(float) == typeof(T))
61-
writer.WriteInt16(checked((short)(float)(object)value!));
62-
else if (typeof(double) == typeof(T))
63-
writer.WriteInt16(checked((short)(double)(object)value!));
64-
else if (typeof(decimal) == typeof(T))
65-
writer.WriteInt16((short)(decimal)(object)value!);
66-
else
67-
throw new NotSupportedException();
68-
}
69-
#endif
7017
}

0 commit comments

Comments
 (0)