Skip to content

Commit

Permalink
Merge pull request #407 from dngrudin/resend_on_flash
Browse files Browse the repository at this point in the history
Implemented resending of data when performing a flash in buffered output
  • Loading branch information
Enmk authored Jan 13, 2025
2 parents 2a49a25 + b71972c commit 8ad0fd4
Showing 1 changed file with 8 additions and 1 deletion.
9 changes: 8 additions & 1 deletion clickhouse/base/output.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,14 @@ void BufferedOutput::Reset() {

void BufferedOutput::DoFlush() {
if (array_output_.Data() != buffer_.data()) {
destination_->Write(buffer_.data(), array_output_.Data() - buffer_.data());
size_t len = array_output_.Data() - buffer_.data();
const uint8_t* buf = buffer_.data();
while (len > 0) {
const size_t written = destination_->Write(buf, len);
buf += written;
len -= written;
}

destination_->Flush();

array_output_.Reset(buffer_.data(), buffer_.size());
Expand Down

0 comments on commit 8ad0fd4

Please sign in to comment.