Merge pull request #22999 from azat/no-optimize_skip_unused_shards-single-node

Do not perform optimize_skip_unused_shards for cluster with one node
This commit is contained in:
Maksim Kita 2021-04-15 14:36:56 +03:00 committed by GitHub
commit e361f5943f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 4 additions and 1 deletions

View File

@ -469,7 +469,7 @@ QueryProcessingStage::Enum StorageDistributed::getQueryProcessingStage(
/// Always calculate optimized cluster here, to avoid conditions during read() /// Always calculate optimized cluster here, to avoid conditions during read()
/// (Anyway it will be calculated in the read()) /// (Anyway it will be calculated in the read())
if (settings.optimize_skip_unused_shards) if (getClusterQueriedNodes(settings, cluster) > 1 && settings.optimize_skip_unused_shards)
{ {
ClusterPtr optimized_cluster = getOptimizedCluster(local_context, metadata_snapshot, query_info.query); ClusterPtr optimized_cluster = getOptimizedCluster(local_context, metadata_snapshot, query_info.query);
if (optimized_cluster) if (optimized_cluster)

View File

@ -0,0 +1,3 @@
-- remote() does not have sharding key, while force_optimize_skip_unused_shards=2 requires from table to have it.
-- But due to only one node, everything works.
select * from remote('127.1', system.one) settings optimize_skip_unused_shards=1, force_optimize_skip_unused_shards=2 format Null;