Skip to content

Commit c259a33

Browse files
authored
Fix DataFrame Merge issue (dotnet#6677)
* Fix DataFrame Merge issue * Return commented test
1 parent a3a6d7b commit c259a33

17 files changed

+221
-3
lines changed

src/Microsoft.Data.Analysis/BooleanDataFrameColumn.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,15 @@ public BooleanDataFrameColumn(string name, long length = 0) : base(name, length)
1919
public BooleanDataFrameColumn(string name, ReadOnlyMemory<byte> buffer, ReadOnlyMemory<byte> nullBitMap, int length = 0, int nullCount = 0) : base(name, buffer, nullBitMap, length, nullCount) { }
2020

2121
internal BooleanDataFrameColumn(string name, PrimitiveColumnContainer<bool> values) : base(name, values) { }
22+
23+
protected override PrimitiveDataFrameColumn<bool> CreateNewColumn(string name, long length = 0)
24+
{
25+
return new BooleanDataFrameColumn(name, length);
26+
}
27+
28+
internal override PrimitiveDataFrameColumn<bool> CreateNewColumn(string name, PrimitiveColumnContainer<bool> container)
29+
{
30+
return new BooleanDataFrameColumn(name, container);
31+
}
2232
}
2333
}

src/Microsoft.Data.Analysis/ByteDataFrameColumn.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,15 @@ public ByteDataFrameColumn(string name, long length = 0) : base(name, length) {
1919
public ByteDataFrameColumn(string name, ReadOnlyMemory<byte> buffer, ReadOnlyMemory<byte> nullBitMap, int length = 0, int nullCount = 0) : base(name, buffer, nullBitMap, length, nullCount) { }
2020

2121
internal ByteDataFrameColumn(string name, PrimitiveColumnContainer<byte> values) : base(name, values) { }
22+
23+
protected override PrimitiveDataFrameColumn<byte> CreateNewColumn(string name, long length = 0)
24+
{
25+
return new ByteDataFrameColumn(name, length);
26+
}
27+
28+
internal override PrimitiveDataFrameColumn<byte> CreateNewColumn(string name, PrimitiveColumnContainer<byte> container)
29+
{
30+
return new ByteDataFrameColumn(name, container);
31+
}
2232
}
2333
}

src/Microsoft.Data.Analysis/CharDataFrameColumn.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,15 @@ public CharDataFrameColumn(string name, long length = 0) : base(name, length) {
1919
public CharDataFrameColumn(string name, ReadOnlyMemory<byte> buffer, ReadOnlyMemory<byte> nullBitMap, int length = 0, int nullCount = 0) : base(name, buffer, nullBitMap, length, nullCount) { }
2020

2121
internal CharDataFrameColumn(string name, PrimitiveColumnContainer<char> values) : base(name, values) { }
22+
23+
protected override PrimitiveDataFrameColumn<char> CreateNewColumn(string name, long length = 0)
24+
{
25+
return new CharDataFrameColumn(name, length);
26+
}
27+
28+
internal override PrimitiveDataFrameColumn<char> CreateNewColumn(string name, PrimitiveColumnContainer<char> container)
29+
{
30+
return new CharDataFrameColumn(name, container);
31+
}
2232
}
2333
}

src/Microsoft.Data.Analysis/DataFrameColumnCollection.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,23 @@ public PrimitiveDataFrameColumn<T> GetPrimitiveColumn<T>(string name)
191191
throw new ArgumentException(string.Format(Strings.BadColumnCast, column.DataType, typeof(T)), nameof(T));
192192
}
193193

194+
/// <summary>
195+
/// Gets the <see cref="DateTimeDataFrameColumn"/> with the specified <paramref name="name"/>.
196+
/// </summary>
197+
/// <param name="name">The name of the column</param>
198+
/// <returns><see cref="DateTimeDataFrameColumn"/>.</returns>
199+
/// <exception cref="ArgumentException">A column named <paramref name="name"/> cannot be found, or if the column's type doesn't match.</exception>
200+
public DateTimeDataFrameColumn GetDateTimeColumn(string name)
201+
{
202+
DataFrameColumn column = this[name];
203+
if (column is DateTimeDataFrameColumn ret)
204+
{
205+
return ret;
206+
}
207+
208+
throw new ArgumentException(string.Format(Strings.BadColumnCast, column.DataType, typeof(DateTime)));
209+
}
210+
194211
/// <summary>
195212
/// Gets the <see cref="ArrowStringDataFrameColumn"/> with the specified <paramref name="name"/>.
196213
/// </summary>

src/Microsoft.Data.Analysis/DateTimeDataFrameColumn.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,15 @@ public DateTimeDataFrameColumn(string name, long length = 0) : base(name, length
1919
public DateTimeDataFrameColumn(string name, ReadOnlyMemory<byte> buffer, ReadOnlyMemory<byte> nullBitMap, int length = 0, int nullCount = 0) : base(name, buffer, nullBitMap, length, nullCount) { }
2020

2121
internal DateTimeDataFrameColumn(string name, PrimitiveColumnContainer<DateTime> values) : base(name, values) { }
22+
23+
protected override PrimitiveDataFrameColumn<DateTime> CreateNewColumn(string name, long length = 0)
24+
{
25+
return new DateTimeDataFrameColumn(name, length);
26+
}
27+
28+
internal override PrimitiveDataFrameColumn<DateTime> CreateNewColumn(string name, PrimitiveColumnContainer<DateTime> container)
29+
{
30+
return new DateTimeDataFrameColumn(name, container);
31+
}
2232
}
2333
}

src/Microsoft.Data.Analysis/DecimalDataFrameColumn.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,15 @@ public DecimalDataFrameColumn(string name, long length = 0) : base(name, length)
1919
public DecimalDataFrameColumn(string name, ReadOnlyMemory<byte> buffer, ReadOnlyMemory<byte> nullBitMap, int length = 0, int nullCount = 0) : base(name, buffer, nullBitMap, length, nullCount) { }
2020

2121
internal DecimalDataFrameColumn(string name, PrimitiveColumnContainer<decimal> values) : base(name, values) { }
22+
23+
protected override PrimitiveDataFrameColumn<decimal> CreateNewColumn(string name, long length = 0)
24+
{
25+
return new DecimalDataFrameColumn(name, length);
26+
}
27+
28+
internal override PrimitiveDataFrameColumn<decimal> CreateNewColumn(string name, PrimitiveColumnContainer<decimal> container)
29+
{
30+
return new DecimalDataFrameColumn(name, container);
31+
}
2232
}
2333
}

src/Microsoft.Data.Analysis/DoubleDataFrameColumn.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,15 @@ public DoubleDataFrameColumn(string name, long length = 0) : base(name, length)
1919
public DoubleDataFrameColumn(string name, ReadOnlyMemory<byte> buffer, ReadOnlyMemory<byte> nullBitMap, int length = 0, int nullCount = 0) : base(name, buffer, nullBitMap, length, nullCount) { }
2020

2121
internal DoubleDataFrameColumn(string name, PrimitiveColumnContainer<double> values) : base(name, values) { }
22+
23+
protected override PrimitiveDataFrameColumn<double> CreateNewColumn(string name, long length = 0)
24+
{
25+
return new DoubleDataFrameColumn(name, length);
26+
}
27+
28+
internal override PrimitiveDataFrameColumn<double> CreateNewColumn(string name, PrimitiveColumnContainer<double> container)
29+
{
30+
return new DoubleDataFrameColumn(name, container);
31+
}
2232
}
2333
}

src/Microsoft.Data.Analysis/Int16DataFrameColumn.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,15 @@ public Int16DataFrameColumn(string name, long length = 0) : base(name, length) {
1919
public Int16DataFrameColumn(string name, ReadOnlyMemory<byte> buffer, ReadOnlyMemory<byte> nullBitMap, int length = 0, int nullCount = 0) : base(name, buffer, nullBitMap, length, nullCount) { }
2020

2121
internal Int16DataFrameColumn(string name, PrimitiveColumnContainer<short> values) : base(name, values) { }
22+
23+
protected override PrimitiveDataFrameColumn<short> CreateNewColumn(string name, long length = 0)
24+
{
25+
return new Int16DataFrameColumn(name, length);
26+
}
27+
28+
internal override PrimitiveDataFrameColumn<short> CreateNewColumn(string name, PrimitiveColumnContainer<short> container)
29+
{
30+
return new Int16DataFrameColumn(name, container);
31+
}
2232
}
2333
}

src/Microsoft.Data.Analysis/Int32DataFrameColumn.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,15 @@ public Int32DataFrameColumn(string name, long length = 0) : base(name, length) {
1919
public Int32DataFrameColumn(string name, ReadOnlyMemory<byte> buffer, ReadOnlyMemory<byte> nullBitMap, int length = 0, int nullCount = 0) : base(name, buffer, nullBitMap, length, nullCount) { }
2020

2121
internal Int32DataFrameColumn(string name, PrimitiveColumnContainer<int> values) : base(name, values) { }
22+
23+
protected override PrimitiveDataFrameColumn<int> CreateNewColumn(string name, long length = 0)
24+
{
25+
return new Int32DataFrameColumn(name, length);
26+
}
27+
28+
internal override PrimitiveDataFrameColumn<int> CreateNewColumn(string name, PrimitiveColumnContainer<int> container)
29+
{
30+
return new Int32DataFrameColumn(name, container);
31+
}
2232
}
2333
}

src/Microsoft.Data.Analysis/Int64DataFrameColumn.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,15 @@ public Int64DataFrameColumn(string name, long length = 0) : base(name, length) {
1919
public Int64DataFrameColumn(string name, ReadOnlyMemory<byte> buffer, ReadOnlyMemory<byte> nullBitMap, int length = 0, int nullCount = 0) : base(name, buffer, nullBitMap, length, nullCount) { }
2020

2121
internal Int64DataFrameColumn(string name, PrimitiveColumnContainer<long> values) : base(name, values) { }
22+
23+
protected override PrimitiveDataFrameColumn<long> CreateNewColumn(string name, long length = 0)
24+
{
25+
return new Int64DataFrameColumn(name, length);
26+
}
27+
28+
internal override PrimitiveDataFrameColumn<long> CreateNewColumn(string name, PrimitiveColumnContainer<long> container)
29+
{
30+
return new Int64DataFrameColumn(name, container);
31+
}
2232
}
2333
}

0 commit comments

Comments
 (0)