@@ -218,7 +218,7 @@ Task<bool> Read(bool async, CancellationToken cancellationToken = default)
218218 return TrueTask ;
219219 case BackendMessageCode . CommandComplete or BackendMessageCode . EmptyQueryResponse when ! _expectErrorBarrier && span . Length >= header . Length :
220220 buffer . ReadPosition += MessageHeader . ByteCount ;
221- ProcessMessage ( Connector . ParseServerMessage ( Buffer , BackendMessageCode . CommandComplete , header . Length ) ! ) ;
221+ ProcessMessage ( Connector . ParseServerMessage ( Buffer , header . Code , header . Length ) ! ) ;
222222 return FalseTask ;
223223 default :
224224 return InResultSlow ( async , cancellationToken ) ;
@@ -248,14 +248,14 @@ async Task<bool> InResultSlow(bool async, CancellationToken cancellationToken)
248248
249249 await ConsumeRow ( async ) . ConfigureAwait ( false ) ;
250250
251- var msg = await ReadMessage ( async ) . ConfigureAwait( false) ;
251+ var msg = await Connector . ReadMessage ( async ,
252+ _isSequential ? DataRowLoadingMode . Sequential : DataRowLoadingMode. NonSequential) . ConfigureAwait( false) ;
252253
253254 switch ( msg. Code)
254255 {
255256 case BackendMessageCode. DataRow:
256257 ProcessMessage( msg) ;
257258 return true;
258-
259259 case BackendMessageCode. CommandComplete:
260260 case BackendMessageCode. EmptyQueryResponse:
261261 ProcessMessage( msg) ;
@@ -276,23 +276,6 @@ async Task<bool> InResultSlow(bool async, CancellationToken cancellationToken)
276276 }
277277 }
278278
279- ValueTask< IBackendMessage > ReadMessage ( bool async )
280- {
281- return _isSequential ? ReadMessageSequential( async , Connector ) : Connector . ReadMessage ( async ) ;
282-
283- static async ValueTask < IBackendMessage > ReadMessageSequential ( bool async , NpgsqlConnector connector )
284- {
285- var msg = await connector . ReadMessage ( async , DataRowLoadingMode . Sequential ) . ConfigureAwait ( false ) ;
286- if ( msg . Code is BackendMessageCode. DataRow)
287- {
288- // Make sure that the datarow's column count is already buffered
289- await connector. ReadBuffer. Ensure( sizeof ( short ) , async ) . ConfigureAwait ( false ) ;
290- return msg;
291- }
292- return msg;
293- }
294- }
295-
296279 #endregion
297280
298281 #region NextResult
@@ -465,7 +448,8 @@ async Task<bool> NextResult(bool async, bool isConsuming = false, CancellationTo
465448 }
466449 else
467450 {
468- msg = await ReadMessage( async) . ConfigureAwait( false) ;
451+ msg = await Connector. ReadMessage( async,
452+ _isSequential ? DataRowLoadingMode . Sequential : DataRowLoadingMode. NonSequential) . ConfigureAwait ( false) ;
469453 ProcessMessage ( msg ) ;
470454 }
471455
@@ -791,9 +775,8 @@ void ProcessMessage(IBackendMessage msg)
791775 Buffer. PgReader. StreamCanSeek = ! _isSequential;
792776 }
793777 // We assume that the row's number of columns is identical to the description's
794- var numColumns = Buffer. ReadInt16( ) ;
795- if ( ColumnCount != numColumns)
796- ThrowHelper. ThrowArgumentException( $"Row's number of columns ( { numColumns} ) differs from the row description's ( { ColumnCount} ) ") ;
778+ if ( ColumnCount != dataRow. ColumnCount)
779+ ThrowHelper. ThrowArgumentException( $"Row's number of columns ( { dataRow. ColumnCount} ) differs from the row description's ( { ColumnCount} ) ") ;
797780
798781 var readPosition = Buffer. ReadPosition;
799782 var msgRemainder = dataRow. Length - sizeof ( short ) ;
0 commit comments