Skip to content

Commit 57f09d0

Browse files
authored
Get rid of provider-specific values (#4980)
Closes #4977
1 parent c2ecdbb commit 57f09d0

15 files changed

+12
-248
lines changed

src/Npgsql.NodaTime/Internal/DateMultirangeHandler.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ public DateMultirangeHandler(PostgresMultirangeType multirangePostgresType, Date
2222
=> _dateIntervalHandler = rangeHandler;
2323

2424
public override Type GetFieldType(FieldDescription? fieldDescription = null) => typeof(DateInterval[]);
25-
public override Type GetProviderSpecificFieldType(FieldDescription? fieldDescription = null) => typeof(DateInterval[]);
2625

2726
public override async ValueTask<object> ReadAsObject(NpgsqlReadBuffer buf, int len, bool async,
2827
FieldDescription? fieldDescription = null)

src/Npgsql.NodaTime/Internal/DateRangeHandler.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ public DateRangeHandler(PostgresType rangePostgresType, NpgsqlTypeHandler subtyp
2424
}
2525

2626
public override Type GetFieldType(FieldDescription? fieldDescription = null) => typeof(DateInterval);
27-
public override Type GetProviderSpecificFieldType(FieldDescription? fieldDescription = null) => typeof(DateInterval);
2827

2928
public override async ValueTask<object> ReadAsObject(NpgsqlReadBuffer buf, int len, bool async,
3029
FieldDescription? fieldDescription = null)

src/Npgsql.NodaTime/Internal/TimestampTzMultirangeHandler.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ public partial class TimestampTzMultirangeHandler : MultirangeHandler<Instant>,
2222
readonly INpgsqlTypeHandler<Interval> _intervalHandler;
2323

2424
public override Type GetFieldType(FieldDescription? fieldDescription = null) => typeof(Interval[]);
25-
public override Type GetProviderSpecificFieldType(FieldDescription? fieldDescription = null) => typeof(Interval[]);
2625

2726
public TimestampTzMultirangeHandler(PostgresMultirangeType pgMultirangeType, TimestampTzRangeHandler rangeHandler)
2827
: base(pgMultirangeType, rangeHandler)

src/Npgsql.NodaTime/Internal/TimestampTzRangeHandler.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ public partial class TimestampTzRangeHandler : RangeHandler<Instant>,
1616
INpgsqlTypeHandler<NpgsqlRange<DateTime>>, INpgsqlTypeHandler<NpgsqlRange<DateTimeOffset>>
1717
{
1818
public override Type GetFieldType(FieldDescription? fieldDescription = null) => typeof(Interval);
19-
public override Type GetProviderSpecificFieldType(FieldDescription? fieldDescription = null) => typeof(Interval);
2019

2120
public TimestampTzRangeHandler(PostgresType rangePostgresType, NpgsqlTypeHandler subtypeHandler)
2221
: base(rangePostgresType, subtypeHandler)

src/Npgsql/Internal/TypeHandlers/ArrayHandler.cs

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ namespace Npgsql.Internal.TypeHandlers;
2626
public class ArrayHandler : NpgsqlTypeHandler
2727
{
2828
readonly Type _defaultArrayType;
29-
readonly Type _psvArrayType;
3029
readonly ConcurrentDictionary<Type, ArrayHandlerCore> _concreteHandlers = new();
3130
protected int LowerBound { get; }
3231
protected NpgsqlTypeHandler ElementHandler { get; }
@@ -37,12 +36,10 @@ public ArrayHandler(PostgresType arrayPostgresType, NpgsqlTypeHandler elementHan
3736
LowerBound = lowerBound;
3837
ElementHandler = elementHandler;
3938
ArrayNullabilityMode = arrayNullabilityMode;
40-
_psvArrayType = elementHandler.GetProviderSpecificFieldType().MakeArrayType();
4139
_defaultArrayType = elementHandler.GetFieldType().MakeArrayType();
4240
}
4341

4442
public override Type GetFieldType(FieldDescription? fieldDescription = null) => typeof(Array);
45-
public override Type GetProviderSpecificFieldType(FieldDescription? fieldDescription = null) => typeof(Array);
4643

4744
/// <inheritdoc />
4845
public override NpgsqlTypeHandler CreateArrayHandler(PostgresArrayType pgArrayType, ArrayNullabilityMode arrayNullabilityMode)
@@ -59,13 +56,6 @@ public override NpgsqlTypeHandler CreateMultirangeHandler(PostgresMultirangeType
5956
ArrayHandlerCore CreateHandler(Type elementType)
6057
=> (ArrayHandlerCore)Activator.CreateInstance(typeof(ArrayHandlerCore<>).MakeGenericType(elementType), ElementHandler, ArrayNullabilityMode, LowerBound)!;
6158

62-
internal override ValueTask<object> ReadPsvAsObject(NpgsqlReadBuffer buf, int len, bool async,
63-
FieldDescription? fieldDescription = null)
64-
{
65-
var handler = _concreteHandlers.GetOrAdd(_psvArrayType, static (_, instance) => instance.CreateHandler(instance.ElementHandler.GetProviderSpecificFieldType()), this);
66-
return handler.ReadArrayAsObject(buf, async);
67-
}
68-
6959
/// <inheritdoc />
7060
protected internal override async ValueTask<TArray> ReadCustom<TArray>(NpgsqlReadBuffer buf, int len, bool async,
7161
FieldDescription? fieldDescription)

src/Npgsql/Internal/TypeHandlers/BitStringHandler.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,6 @@ public BitStringHandler(PostgresType pgType) : base(pgType) {}
3232
public override Type GetFieldType(FieldDescription? fieldDescription = null)
3333
=> fieldDescription != null && fieldDescription.TypeModifier == 1 ? typeof(bool) : typeof(BitArray);
3434

35-
public override Type GetProviderSpecificFieldType(FieldDescription? fieldDescription = null)
36-
=> GetFieldType(fieldDescription);
37-
3835
// BitString requires a special array handler which returns bool or BitArray
3936
/// <inheritdoc />
4037
public override NpgsqlTypeHandler CreateArrayHandler(PostgresArrayType pgArrayType, ArrayNullabilityMode arrayNullabilityMode)

src/Npgsql/Internal/TypeHandlers/MultirangeHandler.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,6 @@ public async Task WriteMultirange<TAnySubtype>(
130130
}
131131

132132
public override Type GetFieldType(FieldDescription? fieldDescription = null) => typeof(NpgsqlRange<TSubtype>[]);
133-
public override Type GetProviderSpecificFieldType(FieldDescription? fieldDescription = null) => typeof(NpgsqlRange<TSubtype>[]);
134133

135134
/// <inheritdoc />
136135
public override NpgsqlTypeHandler CreateArrayHandler(PostgresArrayType pgArrayType, ArrayNullabilityMode arrayNullabilityMode)

src/Npgsql/Internal/TypeHandlers/NetworkHandlers/InetHandler.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ namespace Npgsql.Internal.TypeHandlers.NetworkHandlers;
2121
/// should be considered somewhat unstable, and may change in breaking ways, including in non-major releases.
2222
/// Use it at your own risk.
2323
/// </remarks>
24-
public partial class InetHandler : NpgsqlSimpleTypeHandlerWithPsv<IPAddress, (IPAddress Address, int Subnet)>,
24+
public partial class InetHandler : NpgsqlSimpleTypeHandler<IPAddress>,
25+
INpgsqlSimpleTypeHandler<(IPAddress Address, int Subnet)>,
2526
INpgsqlSimpleTypeHandler<NpgsqlInet>
2627
{
2728
// ReSharper disable InconsistentNaming
@@ -58,7 +59,8 @@ internal static (IPAddress Address, int Subnet) DoRead(
5859
#pragma warning restore CA1801 // Review unused parameters
5960

6061
/// <inheritdoc />
61-
protected override (IPAddress Address, int Subnet) ReadPsv(NpgsqlReadBuffer buf, int len, FieldDescription? fieldDescription = null)
62+
(IPAddress Address, int Subnet) INpgsqlSimpleTypeHandler<(IPAddress Address, int Subnet)>.Read(
63+
NpgsqlReadBuffer buf, int len, FieldDescription? fieldDescription)
6264
=> DoRead(buf, len, fieldDescription, false);
6365

6466
NpgsqlInet INpgsqlSimpleTypeHandler<NpgsqlInet>.Read(NpgsqlReadBuffer buf, int len, FieldDescription? fieldDescription)
@@ -76,7 +78,7 @@ public override int ValidateAndGetLength(IPAddress value, NpgsqlParameter? param
7678
=> GetLength(value);
7779

7880
/// <inheritdoc />
79-
public override int ValidateAndGetLength((IPAddress Address, int Subnet) value, NpgsqlParameter? parameter)
81+
public int ValidateAndGetLength((IPAddress Address, int Subnet) value, NpgsqlParameter? parameter)
8082
=> GetLength(value.Address);
8183

8284
/// <inheritdoc />
@@ -88,7 +90,7 @@ public override void Write(IPAddress value, NpgsqlWriteBuffer buf, NpgsqlParamet
8890
=> DoWrite(value, -1, buf, false);
8991

9092
/// <inheritdoc />
91-
public override void Write((IPAddress Address, int Subnet) value, NpgsqlWriteBuffer buf, NpgsqlParameter? parameter)
93+
public void Write((IPAddress Address, int Subnet) value, NpgsqlWriteBuffer buf, NpgsqlParameter? parameter)
9294
=> DoWrite(value.Address, value.Subnet, buf, false);
9395

9496
/// <inheritdoc />

src/Npgsql/Internal/TypeHandlers/RangeHandler.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ public RangeHandler(PostgresType rangePostgresType, NpgsqlTypeHandler subtypeHan
3434
=> SubtypeHandler = subtypeHandler;
3535

3636
public override Type GetFieldType(FieldDescription? fieldDescription = null) => typeof(NpgsqlRange<TSubtype>);
37-
public override Type GetProviderSpecificFieldType(FieldDescription? fieldDescription = null) => typeof(NpgsqlRange<TSubtype>);
3837

3938
/// <inheritdoc />
4039
public override NpgsqlTypeHandler CreateArrayHandler(PostgresArrayType pgArrayType, ArrayNullabilityMode arrayNullabilityMode)

src/Npgsql/Internal/TypeHandling/NpgsqlSimpleTypeHandlerWithPsv.cs

Lines changed: 0 additions & 98 deletions
This file was deleted.

0 commit comments

Comments
 (0)