mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-29 05:00:47 +00:00
ISSUES-2581 fix bug with new partition
This commit is contained in:
parent
28102bc3b5
commit
d4a56af660
@ -137,7 +137,7 @@ BlockInputStreams MergeTreeDataSelectExecutor::read(
|
|||||||
const Context & context,
|
const Context & context,
|
||||||
const size_t max_block_size,
|
const size_t max_block_size,
|
||||||
const unsigned num_streams,
|
const unsigned num_streams,
|
||||||
const PartitionIdToMaxBlock* max_blocks_number_to_read) const
|
const PartitionIdToMaxBlock * max_blocks_number_to_read) const
|
||||||
{
|
{
|
||||||
return readFromParts(
|
return readFromParts(
|
||||||
data.getDataPartsVector(), column_names_to_return, query_info, context,
|
data.getDataPartsVector(), column_names_to_return, query_info, context,
|
||||||
@ -151,7 +151,7 @@ BlockInputStreams MergeTreeDataSelectExecutor::readFromParts(
|
|||||||
const Context & context,
|
const Context & context,
|
||||||
const size_t max_block_size,
|
const size_t max_block_size,
|
||||||
const unsigned num_streams,
|
const unsigned num_streams,
|
||||||
const PartitionIdToMaxBlock* max_blocks_number_to_read) const
|
const PartitionIdToMaxBlock * max_blocks_number_to_read) const
|
||||||
{
|
{
|
||||||
size_t part_index = 0;
|
size_t part_index = 0;
|
||||||
|
|
||||||
@ -274,7 +274,7 @@ BlockInputStreams MergeTreeDataSelectExecutor::readFromParts(
|
|||||||
if (max_blocks_number_to_read)
|
if (max_blocks_number_to_read)
|
||||||
{
|
{
|
||||||
auto blocks_iterator = max_blocks_number_to_read->find(part->info.partition_id);
|
auto blocks_iterator = max_blocks_number_to_read->find(part->info.partition_id);
|
||||||
if (blocks_iterator != max_blocks_number_to_read->end() && part->info.max_block > blocks_iterator->second)
|
if (blocks_iterator == max_blocks_number_to_read->end() || part->info.max_block > blocks_iterator->second)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ public:
|
|||||||
const Context & context,
|
const Context & context,
|
||||||
size_t max_block_size,
|
size_t max_block_size,
|
||||||
unsigned num_streams,
|
unsigned num_streams,
|
||||||
const PartitionIdToMaxBlock* max_blocks_number_to_read = nullptr) const;
|
const PartitionIdToMaxBlock * max_blocks_number_to_read = nullptr) const;
|
||||||
|
|
||||||
BlockInputStreams readFromParts(
|
BlockInputStreams readFromParts(
|
||||||
MergeTreeData::DataPartsVector parts,
|
MergeTreeData::DataPartsVector parts,
|
||||||
@ -39,7 +39,7 @@ public:
|
|||||||
const Context & context,
|
const Context & context,
|
||||||
size_t max_block_size,
|
size_t max_block_size,
|
||||||
unsigned num_streams,
|
unsigned num_streams,
|
||||||
const PartitionIdToMaxBlock* max_blocks_number_to_read = nullptr) const;
|
const PartitionIdToMaxBlock * max_blocks_number_to_read = nullptr) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
MergeTreeData & data;
|
MergeTreeData & data;
|
||||||
|
@ -2952,12 +2952,13 @@ BlockInputStreams StorageReplicatedMergeTree::read(
|
|||||||
* 2. Do not read parts that have not yet been written to the quorum of the replicas.
|
* 2. Do not read parts that have not yet been written to the quorum of the replicas.
|
||||||
* For this you have to synchronously go to ZooKeeper.
|
* For this you have to synchronously go to ZooKeeper.
|
||||||
*/
|
*/
|
||||||
ReplicatedMergeTreeQuorumAddedParts::PartitionIdToMaxBlock max_added_blocks;
|
|
||||||
if (settings.select_sequential_consistency)
|
if (settings.select_sequential_consistency)
|
||||||
{
|
{
|
||||||
|
ReplicatedMergeTreeQuorumAddedParts::PartitionIdToMaxBlock max_added_blocks;
|
||||||
|
|
||||||
for (const auto & data_part : data.getDataParts())
|
for (const auto & data_part : data.getDataParts())
|
||||||
{
|
{
|
||||||
max_added_blocks[data_part->info.partition_id] = data_part->info.max_block;
|
max_added_blocks[data_part->info.partition_id] = std::max(max_added_blocks[data_part->info.partition_id], data_part->info.max_block);
|
||||||
}
|
}
|
||||||
|
|
||||||
auto zookeeper = getZooKeeper();
|
auto zookeeper = getZooKeeper();
|
||||||
@ -2993,12 +2994,11 @@ BlockInputStreams StorageReplicatedMergeTree::read(
|
|||||||
for (const auto & max_block : part_with_quorum.getMaxInsertedBlocks())
|
for (const auto & max_block : part_with_quorum.getMaxInsertedBlocks())
|
||||||
max_added_blocks[max_block.first] = max_block.second;
|
max_added_blocks[max_block.first] = max_block.second;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return reader.read(column_names, query_info, context, max_block_size, num_streams, &max_added_blocks);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (max_added_blocks.empty())
|
return reader.read(column_names, query_info, context, max_block_size, num_streams);
|
||||||
return reader.read(column_names, query_info, context, max_block_size, num_streams);
|
|
||||||
else
|
|
||||||
return reader.read(column_names, query_info, context, max_block_size, num_streams, &max_added_blocks);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user