/// <summary> /// Skips the current column without interpreting its value. /// </summary> public void Skip() { ReadColumnLenIfNeeded(); if (_columnLen != -1) { _buf.Skip(_columnLen); } _columnLen = int.MinValue; _column++; }
async ValueTask DisposeAsync(bool disposing, bool async) { if (_isDisposed || !disposing) { return; } try { if (CanWrite) { await FlushAsync(async); _writeBuf.EndCopyMode(); await _connector.WriteCopyDone(async); await _connector.Flush(async); Expect <CommandCompleteMessage>(await _connector.ReadMessage(async, cancellationToken: default), _connector); Expect <ReadyForQueryMessage>(await _connector.ReadMessage(async, cancellationToken: default), _connector); } else { if (!_isConsumed) { if (_leftToReadInDataMsg > 0) { await _readBuf.Skip(_leftToReadInDataMsg, async); } _connector.SkipUntil(BackendMessageCode.ReadyForQuery); } } } finally { var connector = _connector; Cleanup(); connector.EndUserAction(); } }
protected override void Dispose(bool disposing) { if (_isDisposed || !disposing) { return; } try { if (CanWrite) { Flush(); _writeBuf.EndCopyMode(); _connector.SendMessage(CopyDoneMessage.Instance); Expect <CommandCompleteMessage>(_connector.ReadMessage(), _connector); Expect <ReadyForQueryMessage>(_connector.ReadMessage(), _connector); } else { if (!_isConsumed) { if (_leftToReadInDataMsg > 0) { _readBuf.Skip(_leftToReadInDataMsg); } _connector.SkipUntil(BackendMessageCode.ReadyForQuery); } } } finally { var connector = _connector; Cleanup(); connector.EndUserAction(); } }