@@ -64,48 +64,45 @@ private bool InitNextReader()
6464
6565 private bool InitChunkData ( )
6666 {
67- unsafe
67+ foreach ( var reader in vectorReaders )
6868 {
69- foreach ( var reader in vectorReaders )
70- {
71- reader . Dispose ( ) ;
72- }
69+ reader . Dispose ( ) ;
70+ }
7371
74- currentChunk ? . Dispose ( ) ;
75- currentChunk = streamingResult ? NativeMethods . StreamingResult . DuckDBStreamFetchChunk ( currentResult ) : NativeMethods . Types . DuckDBResultGetChunk ( currentResult , currentChunkIndex ) ;
72+ currentChunk ? . Dispose ( ) ;
73+ currentChunk = streamingResult ? NativeMethods . StreamingResult . DuckDBStreamFetchChunk ( currentResult ) : NativeMethods . Types . DuckDBResultGetChunk ( currentResult , currentChunkIndex ) ;
7674
77- rowsReadFromCurrentChunk = 0 ;
75+ rowsReadFromCurrentChunk = 0 ;
7876
79- currentChunkRowCount = NativeMethods . DataChunks . DuckDBDataChunkGetSize ( currentChunk ) ;
77+ currentChunkRowCount = NativeMethods . DataChunks . DuckDBDataChunkGetSize ( currentChunk ) ;
8078
81- if ( vectorReaders . Length != fieldCount )
82- {
83- vectorReaders = new VectorDataReaderBase [ fieldCount ] ;
84- }
79+ if ( vectorReaders . Length != fieldCount )
80+ {
81+ vectorReaders = new VectorDataReaderBase [ fieldCount ] ;
82+ }
8583
86- for ( int index = 0 ; index < fieldCount ; index ++ )
87- {
88- var vector = NativeMethods . DataChunks . DuckDBDataChunkGetVector ( currentChunk , index ) ;
84+ for ( int index = 0 ; index < fieldCount ; index ++ )
85+ {
86+ var vector = NativeMethods . DataChunks . DuckDBDataChunkGetVector ( currentChunk , index ) ;
8987
90- using var logicalType = NativeMethods . Query . DuckDBColumnLogicalType ( ref currentResult , index ) ;
88+ using var logicalType = NativeMethods . Query . DuckDBColumnLogicalType ( ref currentResult , index ) ;
9189
92- vectorReaders [ index ] = VectorDataReaderFactory . CreateReader ( vector , logicalType , vectorReaders [ index ] ? . ColumnName ??
93- NativeMethods . Query . DuckDBColumnName ( ref currentResult , index ) . ToManagedString ( false ) ) ;
94- }
90+ var columnName = vectorReaders [ index ] ? . ColumnName ?? NativeMethods . Query . DuckDBColumnName ( ref currentResult , index ) . ToManagedString ( false ) ;
91+ vectorReaders [ index ] = VectorDataReaderFactory . CreateReader ( vector , logicalType , columnName ) ;
92+ }
9593
96- if ( columnMapping . Count == 0 )
94+ if ( columnMapping . Count == 0 )
95+ {
96+ for ( var i = 0 ; i < vectorReaders . Length ; i ++ )
9797 {
98- for ( var i = 0 ; i < vectorReaders . Length ; i ++ )
98+ if ( ! columnMapping . ContainsKey ( vectorReaders [ i ] . ColumnName ) )
9999 {
100- if ( ! columnMapping . ContainsKey ( vectorReaders [ i ] . ColumnName ) )
101- {
102- columnMapping . Add ( vectorReaders [ i ] . ColumnName , i ) ;
103- }
100+ columnMapping . Add ( vectorReaders [ i ] . ColumnName , i ) ;
104101 }
105102 }
106-
107- return currentChunkRowCount > 0 ;
108103 }
104+
105+ return currentChunkRowCount > 0 ;
109106 }
110107
111108 public override bool GetBoolean ( int ordinal )
0 commit comments