mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-23 08:02:02 +00:00
dbms: Server: feature development. [#METR-15090]
This commit is contained in:
parent
50d103a4c2
commit
985e3cf1ec
@ -47,7 +47,8 @@ public:
|
|||||||
if (!res)
|
if (!res)
|
||||||
working_buffer.resize(0);
|
working_buffer.resize(0);
|
||||||
|
|
||||||
pos = working_buffer.begin();
|
pos = working_buffer.begin() + working_buffer_offset;
|
||||||
|
working_buffer_offset = 0;
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -68,13 +68,14 @@ private:
|
|||||||
|
|
||||||
Position buffer_begin = nullptr;
|
Position buffer_begin = nullptr;
|
||||||
off_t region_aligned_size = 0;
|
off_t region_aligned_size = 0;
|
||||||
|
|
||||||
/// Асинхронная операция чтения ещё не завершилась.
|
/// Асинхронная операция чтения ещё не завершилась.
|
||||||
bool is_pending_read = false;
|
bool is_pending_read = false;
|
||||||
/// Конец файла достигнут.
|
/// Конец файла достигнут.
|
||||||
bool is_eof = false;
|
bool is_eof = false;
|
||||||
/// Был отправлен хоть один запрос на асинхронную операцию чтения.
|
/// Был отправлен хоть один запрос на асинхронную операцию чтения.
|
||||||
bool is_started = false;
|
bool is_started = false;
|
||||||
|
/// Асинхронная операция завершилась неудачно?
|
||||||
bool aio_failed = false;
|
bool aio_failed = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -252,15 +252,14 @@ void ReadBufferAIO::publishReceivedData()
|
|||||||
if (pos_in_file > (std::numeric_limits<off_t>::max() - bytes_read))
|
if (pos_in_file > (std::numeric_limits<off_t>::max() - bytes_read))
|
||||||
throw Exception("File position overflowed", ErrorCodes::LOGICAL_ERROR);
|
throw Exception("File position overflowed", ErrorCodes::LOGICAL_ERROR);
|
||||||
|
|
||||||
::memmove(buffer_begin, buffer_begin + region_left_padding, bytes_read);
|
|
||||||
|
|
||||||
if (bytes_read > 0)
|
if (bytes_read > 0)
|
||||||
fill_buffer.buffer().resize(bytes_read);
|
fill_buffer.buffer().resize(region_left_padding + bytes_read);
|
||||||
if (static_cast<size_t>(bytes_read) < requested_byte_count)
|
if (static_cast<size_t>(bytes_read) < requested_byte_count)
|
||||||
is_eof = true;
|
is_eof = true;
|
||||||
|
|
||||||
pos_in_file += bytes_read;
|
pos_in_file += bytes_read;
|
||||||
total_bytes_read += bytes_read;
|
total_bytes_read += bytes_read;
|
||||||
|
working_buffer_offset = region_left_padding;
|
||||||
|
|
||||||
if (total_bytes_read == max_bytes_read)
|
if (total_bytes_read == max_bytes_read)
|
||||||
is_eof = true;
|
is_eof = true;
|
||||||
|
Loading…
Reference in New Issue
Block a user