Skip to content

Commit 01f0534

Browse files
committed
Merge branch 'develop' into Appender-Data-Chunk
2 parents 6530ea2 + 9c7a1d9 commit 01f0534

File tree

6 files changed

+16
-30
lines changed

6 files changed

+16
-30
lines changed

DuckDB.NET.Data/DuckDBDataReader.cs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -78,16 +78,14 @@ private bool InitChunkData()
7878

7979
vectorReaders = new VectorDataReaderBase[fieldCount];
8080

81-
for (int i = 0; i < fieldCount; i++)
81+
for (int index = 0; index < fieldCount; index++)
8282
{
83-
var vector = NativeMethods.DataChunks.DuckDBDataChunkGetVector(currentChunk, i);
83+
var vector = NativeMethods.DataChunks.DuckDBDataChunkGetVector(currentChunk, index);
8484

85-
var vectorData = NativeMethods.Vectors.DuckDBVectorGetData(vector);
86-
var vectorValidityMask = NativeMethods.Vectors.DuckDBVectorGetValidity(vector);
85+
using var logicalType = NativeMethods.Query.DuckDBColumnLogicalType(ref currentResult, index);
8786

88-
vectorReaders[i] = VectorDataReaderFactory.CreateReader(vector, vectorData, vectorValidityMask,
89-
NativeMethods.Query.DuckDBColumnType(ref currentResult, i),
90-
NativeMethods.Query.DuckDBColumnName(ref currentResult, i).ToManagedString(false));
87+
vectorReaders[index] = VectorDataReaderFactory.CreateReader(vector, logicalType,
88+
NativeMethods.Query.DuckDBColumnName(ref currentResult, index).ToManagedString(false));
9189
}
9290

9391
return currentChunkRowCount > 0;

DuckDB.NET.Data/Internal/Reader/ListVectorDataReader.cs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,10 @@ internal unsafe ListVectorDataReader(IntPtr vector, void* dataPointer, ulong* va
1818
using var logicalType = NativeMethods.Vectors.DuckDBVectorGetColumnType(vector);
1919
using var childType = IsList ? NativeMethods.LogicalType.DuckDBListTypeChildType(logicalType) : NativeMethods.LogicalType.DuckDBArrayTypeChildType(logicalType);
2020

21-
var type = NativeMethods.LogicalType.DuckDBGetTypeId(childType);
22-
2321
var childVector = IsList ? NativeMethods.Vectors.DuckDBListVectorGetChild(vector) : NativeMethods.Vectors.DuckDBArrayVectorGetChild(vector);
2422

25-
var childVectorData = NativeMethods.Vectors.DuckDBVectorGetData(childVector);
26-
var childVectorValidity = NativeMethods.Vectors.DuckDBVectorGetValidity(childVector);
27-
2823
arraySize = IsList ? 0 : (ulong)NativeMethods.LogicalType.DuckDBArrayVectorGetSize(logicalType);
29-
listDataReader = VectorDataReaderFactory.CreateReader(childVector, childVectorData, childVectorValidity, type, columnName);
24+
listDataReader = VectorDataReaderFactory.CreateReader(childVector, childType, columnName);
3025
}
3126

3227
protected override Type GetColumnType()

DuckDB.NET.Data/Internal/Reader/MapVectorDataReader.cs

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,13 @@ internal unsafe MapVectorDataReader(IntPtr vector, void* dataPointer, ulong* val
1818
using var keyTypeLogical = NativeMethods.LogicalType.DuckDBMapTypeKeyType(logicalType);
1919
using var valueTypeLogical = NativeMethods.LogicalType.DuckDBMapTypeValueType(logicalType);
2020

21-
var keyType = NativeMethods.LogicalType.DuckDBGetTypeId(keyTypeLogical);
22-
var valueType = NativeMethods.LogicalType.DuckDBGetTypeId(valueTypeLogical);
23-
2421
var childVector = NativeMethods.Vectors.DuckDBListVectorGetChild(vector);
2522

2623
var keyVector = NativeMethods.Vectors.DuckDBStructVectorGetChild(childVector, 0);
2724
var valueVector = NativeMethods.Vectors.DuckDBStructVectorGetChild(childVector, 1);
2825

29-
keyReader = VectorDataReaderFactory.CreateReader(keyVector, NativeMethods.Vectors.DuckDBVectorGetData(keyVector),
30-
NativeMethods.Vectors.DuckDBVectorGetValidity(keyVector), keyType, columnName);
31-
32-
valueReader = VectorDataReaderFactory.CreateReader(valueVector, NativeMethods.Vectors.DuckDBVectorGetData(valueVector),
33-
NativeMethods.Vectors.DuckDBVectorGetValidity(valueVector), valueType, columnName);
26+
keyReader = VectorDataReaderFactory.CreateReader(keyVector, keyTypeLogical, columnName);
27+
valueReader = VectorDataReaderFactory.CreateReader(valueVector, valueTypeLogical, columnName);
3428
}
3529

3630
protected override Type GetColumnType()

DuckDB.NET.Data/Internal/Reader/StructVectorDataReader.cs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,9 @@ internal unsafe StructVectorDataReader(IntPtr vector, void* dataPointer, ulong*
2222
{
2323
var name = NativeMethods.LogicalType.DuckDBStructTypeChildName(logicalType, index).ToManagedString();
2424
var childVector = NativeMethods.Vectors.DuckDBStructVectorGetChild(vector, index);
25-
26-
var childVectorData = NativeMethods.Vectors.DuckDBVectorGetData(childVector);
27-
var childVectorValidity = NativeMethods.Vectors.DuckDBVectorGetValidity(childVector);
28-
25+
2926
using var childType = NativeMethods.LogicalType.DuckDBStructTypeChildType(logicalType, index);
30-
var type = NativeMethods.LogicalType.DuckDBGetTypeId(childType);
31-
32-
structDataReaders[name] = VectorDataReaderFactory.CreateReader(childVector, childVectorData, childVectorValidity, type, columnName);
27+
structDataReaders[name] = VectorDataReaderFactory.CreateReader(childVector, childType, columnName);
3328
}
3429
}
3530

DuckDB.NET.Data/Internal/Reader/VectorDataReaderFactory.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,12 @@ namespace DuckDB.NET.Data.Internal.Reader;
55

66
internal static class VectorDataReaderFactory
77
{
8-
public static unsafe VectorDataReaderBase CreateReader(IntPtr vector, void* dataPointer, ulong* validityMaskPointer, DuckDBType columnType, string columnName)
8+
public static unsafe VectorDataReaderBase CreateReader(IntPtr vector, DuckDBLogicalType logicalColumnType, string columnName)
99
{
10+
var columnType = NativeMethods.LogicalType.DuckDBGetTypeId(logicalColumnType);
11+
var dataPointer = NativeMethods.Vectors.DuckDBVectorGetData(vector);
12+
var validityMaskPointer = NativeMethods.Vectors.DuckDBVectorGetValidity(vector);
13+
1014
return columnType switch
1115
{
1216
DuckDBType.Uuid => new GuidVectorDataReader(dataPointer, validityMaskPointer, columnType, columnName),

GitVersion.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
next-version: 0.10.2
1+
next-version: 0.10.3
22
branches:
33
develop:
44
increment: None

0 commit comments

Comments
 (0)