Skip to content

Commit dc4f9b0

Browse files
author
Prashanth Govindarajan
authored
Remove T : unmanaged constraint from DataFrameColumn.BinaryOperations (dotnet#2801)
* Remove T : unmanaged constraint from DataFrameColumn.BinaryOperations * Address feedback * Rename the value version of the APIs * sq * Fix build * Address feedback * Remove Value from the APIs * sq * Address feedback
1 parent 303ba62 commit dc4f9b0

11 files changed

+219
-157
lines changed

src/Microsoft.Data.Analysis/ArrowStringDataFrameColumn.cs

+8
Original file line numberDiff line numberDiff line change
@@ -497,6 +497,10 @@ public PrimitiveDataFrameColumn<bool> ElementwiseEquals(string value)
497497

498498
public override PrimitiveDataFrameColumn<bool> ElementwiseEquals<T>(T value)
499499
{
500+
if (value is DataFrameColumn column)
501+
{
502+
return ElementwiseEquals(column);
503+
}
500504
return ElementwiseEquals(value.ToString());
501505
}
502506

@@ -532,6 +536,10 @@ public PrimitiveDataFrameColumn<bool> ElementwiseNotEquals(string value)
532536

533537
public override PrimitiveDataFrameColumn<bool> ElementwiseNotEquals<T>(T value)
534538
{
539+
if (value is DataFrameColumn column)
540+
{
541+
return ElementwiseNotEquals(column);
542+
}
535543
return ElementwiseNotEquals(value.ToString());
536544
}
537545

src/Microsoft.Data.Analysis/DataFrameColumn.BinaryOperations.cs

-16
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ public virtual DataFrameColumn Add(DataFrameColumn column, bool inPlace = false)
2121
/// Performs an element wise addition on each value in the column
2222
/// </summary>
2323
public virtual DataFrameColumn Add<T>(T value, bool inPlace = false)
24-
where T : unmanaged
2524
{
2625
throw new NotImplementedException();
2726
}
@@ -30,7 +29,6 @@ public virtual DataFrameColumn Add<T>(T value, bool inPlace = false)
3029
/// Performs a reversed element wise addition on each value in the column
3130
/// </summary>
3231
public virtual DataFrameColumn ReverseAdd<T>(T value, bool inPlace = false)
33-
where T : unmanaged
3432
{
3533
throw new NotImplementedException();
3634
}
@@ -44,7 +42,6 @@ public virtual DataFrameColumn Subtract(DataFrameColumn column, bool inPlace = f
4442
/// Performs an element wise subtraction on each value in the column
4543
/// </summary>
4644
public virtual DataFrameColumn Subtract<T>(T value, bool inPlace = false)
47-
where T : unmanaged
4845
{
4946
throw new NotImplementedException();
5047
}
@@ -53,7 +50,6 @@ public virtual DataFrameColumn Subtract<T>(T value, bool inPlace = false)
5350
/// Performs a reversed element wise subtraction on each value in the column
5451
/// </summary>
5552
public virtual DataFrameColumn ReverseSubtract<T>(T value, bool inPlace = false)
56-
where T : unmanaged
5753
{
5854
throw new NotImplementedException();
5955
}
@@ -67,7 +63,6 @@ public virtual DataFrameColumn Multiply(DataFrameColumn column, bool inPlace = f
6763
/// Performs an element wise multiplication on each value in the column
6864
/// </summary>
6965
public virtual DataFrameColumn Multiply<T>(T value, bool inPlace = false)
70-
where T : unmanaged
7166
{
7267
throw new NotImplementedException();
7368
}
@@ -76,7 +71,6 @@ public virtual DataFrameColumn Multiply<T>(T value, bool inPlace = false)
7671
/// Performs a reversed element wise multiplication on each value in the column
7772
/// </summary>
7873
public virtual DataFrameColumn ReverseMultiply<T>(T value, bool inPlace = false)
79-
where T : unmanaged
8074
{
8175
throw new NotImplementedException();
8276
}
@@ -90,7 +84,6 @@ public virtual DataFrameColumn Divide(DataFrameColumn column, bool inPlace = fal
9084
/// Performs an element wise division on each value in the column
9185
/// </summary>
9286
public virtual DataFrameColumn Divide<T>(T value, bool inPlace = false)
93-
where T : unmanaged
9487
{
9588
throw new NotImplementedException();
9689
}
@@ -99,7 +92,6 @@ public virtual DataFrameColumn Divide<T>(T value, bool inPlace = false)
9992
/// Performs a reversed element wise division on each value in the column
10093
/// </summary>
10194
public virtual DataFrameColumn ReverseDivide<T>(T value, bool inPlace = false)
102-
where T : unmanaged
10395
{
10496
throw new NotImplementedException();
10597
}
@@ -113,7 +105,6 @@ public virtual DataFrameColumn Modulo(DataFrameColumn column, bool inPlace = fal
113105
/// Performs an element wise modulus operation on each value in the column
114106
/// </summary>
115107
public virtual DataFrameColumn Modulo<T>(T value, bool inPlace = false)
116-
where T : unmanaged
117108
{
118109
throw new NotImplementedException();
119110
}
@@ -122,7 +113,6 @@ public virtual DataFrameColumn Modulo<T>(T value, bool inPlace = false)
122113
/// Performs a reversed element wise modulus operation on each value in the column
123114
/// </summary>
124115
public virtual DataFrameColumn ReverseModulo<T>(T value, bool inPlace = false)
125-
where T : unmanaged
126116
{
127117
throw new NotImplementedException();
128118
}
@@ -215,7 +205,6 @@ public virtual PrimitiveDataFrameColumn<bool> ElementwiseEquals(DataFrameColumn
215205
/// Performs an element wise equals on each value in the column
216206
/// </summary>
217207
public virtual PrimitiveDataFrameColumn<bool> ElementwiseEquals<T>(T value)
218-
where T : unmanaged
219208
{
220209
throw new NotImplementedException();
221210
}
@@ -229,7 +218,6 @@ public virtual PrimitiveDataFrameColumn<bool> ElementwiseNotEquals(DataFrameColu
229218
/// Performs an element wise not-equals on each value in the column
230219
/// </summary>
231220
public virtual PrimitiveDataFrameColumn<bool> ElementwiseNotEquals<T>(T value)
232-
where T : unmanaged
233221
{
234222
throw new NotImplementedException();
235223
}
@@ -243,7 +231,6 @@ public virtual PrimitiveDataFrameColumn<bool> ElementwiseGreaterThanOrEqual(Data
243231
/// Performs an element wise greater than or equal on each value in the column
244232
/// </summary>
245233
public virtual PrimitiveDataFrameColumn<bool> ElementwiseGreaterThanOrEqual<T>(T value)
246-
where T : unmanaged
247234
{
248235
throw new NotImplementedException();
249236
}
@@ -257,7 +244,6 @@ public virtual PrimitiveDataFrameColumn<bool> ElementwiseLessThanOrEqual(DataFra
257244
/// Performs an element wise less than or equal on each value in the column
258245
/// </summary>
259246
public virtual PrimitiveDataFrameColumn<bool> ElementwiseLessThanOrEqual<T>(T value)
260-
where T : unmanaged
261247
{
262248
throw new NotImplementedException();
263249
}
@@ -271,7 +257,6 @@ public virtual PrimitiveDataFrameColumn<bool> ElementwiseGreaterThan(DataFrameCo
271257
/// Performs an element wise greater than on each value in the column
272258
/// </summary>
273259
public virtual PrimitiveDataFrameColumn<bool> ElementwiseGreaterThan<T>(T value)
274-
where T : unmanaged
275260
{
276261
throw new NotImplementedException();
277262
}
@@ -285,7 +270,6 @@ public virtual PrimitiveDataFrameColumn<bool> ElementwiseLessThan(DataFrameColum
285270
/// Performs an element wise less than on each value in the column
286271
/// </summary>
287272
public virtual PrimitiveDataFrameColumn<bool> ElementwiseLessThan<T>(T value)
288-
where T : unmanaged
289273
{
290274
throw new NotImplementedException();
291275
}

src/Microsoft.Data.Analysis/DataFrameColumn.BinaryOperations.tt

-3
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,13 @@ namespace Microsoft.Data.Analysis
3030
/// <#=method.GetColumnSpecificMethodComments()#>
3131
/// </summary>
3232
public virtual DataFrameColumn <#=method.MethodName#><T>(T value, bool inPlace = false)
33-
where T : unmanaged
3433
<# } #>
3534
<# } #>
3635
<# if (method.MethodType == MethodType.ComparisonScalar) { #>
3736
/// <summary>
3837
/// <#=method.GetColumnSpecificMethodComments()#>
3938
/// </summary>
4039
public virtual PrimitiveDataFrameColumn<bool> <#=method.MethodName#><T>(T value)
41-
where T : unmanaged
4240
<# } #>
4341
<# if (method.MethodType == MethodType.Binary) {#>
4442
public virtual DataFrameColumn <#=method.MethodName#>(DataFrameColumn column, bool inPlace = false)
@@ -67,7 +65,6 @@ namespace Microsoft.Data.Analysis
6765
/// <#=method.GetColumnSpecificReverseMethodComments()#>
6866
/// </summary>
6967
public virtual DataFrameColumn Reverse<#=method.MethodName#><T>(T value, bool inPlace = false)
70-
where T : unmanaged
7168
<# } #>
7269
{
7370
throw new NotImplementedException();

src/Microsoft.Data.Analysis/DecimalConverter.cs

-3
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,16 @@
55
namespace Microsoft.Data.Analysis
66
{
77
internal interface IDecimalConverter<T>
8-
where T : struct
98
{
109
decimal GetDecimal(T value);
1110
}
1211
internal static class DecimalConverter<T>
13-
where T : struct
1412
{
1513
public static IDecimalConverter<T> Instance { get; } = DecimalConverter.GetDecimalConverter<T>();
1614
}
1715
internal static class DecimalConverter
1816
{
1917
public static IDecimalConverter<T> GetDecimalConverter<T>()
20-
where T : struct
2118
{
2219
if (typeof(T) == typeof(bool))
2320
{

src/Microsoft.Data.Analysis/DoubleConverter.cs

-3
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,16 @@
55
namespace Microsoft.Data.Analysis
66
{
77
internal interface IDoubleConverter<T>
8-
where T : struct
98
{
109
double GetDouble(T value);
1110
}
1211
internal static class DoubleConverter<T>
13-
where T : struct
1412
{
1513
public static IDoubleConverter<T> Instance { get; } = DoubleConverter.GetDoubleConverter<T>();
1614
}
1715
internal static class DoubleConverter
1816
{
1917
public static IDoubleConverter<T> GetDoubleConverter<T>()
20-
where T : struct
2118
{
2219
if (typeof(T) == typeof(bool))
2320
{

0 commit comments

Comments
 (0)