Skip to content

Commit 41e6c70

Browse files
authored
Merge pull request #770 from Altinity/feature/pruning_for_iceberg_cluster
Prune table in icebergCluster functions
2 parents 34fe830 + 81d047c commit 41e6c70

11 files changed

+23
-10
lines changed

src/Storages/IStorageCluster.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ void ReadFromCluster::createExtension(const ActionsDAG::Node * predicate)
6969
if (extension)
7070
return;
7171

72-
extension = storage->getTaskIteratorExtension(predicate, context, cluster);
72+
extension = storage->getTaskIteratorExtension(predicate, filter_actions_dag, context, cluster);
7373
}
7474

7575
/// The code executes on initiator

src/Storages/IStorageCluster.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ class IStorageCluster : public IStorage
4343
/// Query is needed for pruning by virtual columns (_file, _path)
4444
virtual RemoteQueryExecutor::Extension getTaskIteratorExtension(
4545
const ActionsDAG::Node * predicate,
46+
const std::optional<ActionsDAG> & filter_actions_dag,
4647
const ContextPtr & context,
4748
ClusterPtr cluster) const = 0;
4849

src/Storages/ObjectStorage/StorageObjectStorageCluster.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -339,12 +339,13 @@ void StorageObjectStorageCluster::updateQueryToSendIfNeeded(
339339

340340
RemoteQueryExecutor::Extension StorageObjectStorageCluster::getTaskIteratorExtension(
341341
const ActionsDAG::Node * predicate,
342+
const std::optional<ActionsDAG> & filter_actions_dag,
342343
const ContextPtr & local_context,
343344
ClusterPtr cluster) const
344345
{
345346
auto iterator = StorageObjectStorageSource::createFileIterator(
346347
configuration, configuration->getQuerySettings(local_context), object_storage, /* distributed_processing */false,
347-
local_context, predicate, {}, getVirtualsList(), nullptr, local_context->getFileProgressCallback());
348+
local_context, predicate, filter_actions_dag, getVirtualsList(), nullptr, local_context->getFileProgressCallback());
348349

349350
std::vector<std::string> ids_of_hosts;
350351
for (const auto & shard : cluster->getShardsInfo())

src/Storages/ObjectStorage/StorageObjectStorageCluster.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ class StorageObjectStorageCluster : public IStorageCluster
3131

3232
RemoteQueryExecutor::Extension getTaskIteratorExtension(
3333
const ActionsDAG::Node * predicate,
34+
const std::optional<ActionsDAG> & filter_actions_dag,
3435
const ContextPtr & context,
3536
ClusterPtr cluster) const override;
3637

src/Storages/StorageDistributed.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1160,7 +1160,7 @@ std::optional<QueryPipeline> StorageDistributed::distributedWriteFromClusterStor
11601160
const auto cluster = getCluster();
11611161

11621162
/// Select query is needed for pruining on virtual columns
1163-
auto extension = src_storage_cluster.getTaskIteratorExtension(predicate, local_context, cluster);
1163+
auto extension = src_storage_cluster.getTaskIteratorExtension(predicate, filter, local_context, cluster);
11641164

11651165
/// Here we take addresses from destination cluster and assume source table exists on these nodes
11661166
size_t replica_index = 0;

src/Storages/StorageFileCluster.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ void StorageFileCluster::updateQueryToSendIfNeeded(DB::ASTPtr & query, const Sto
7676

7777
RemoteQueryExecutor::Extension StorageFileCluster::getTaskIteratorExtension(
7878
const ActionsDAG::Node * predicate,
79+
const std::optional<ActionsDAG> & /* filter_actions_dag */,
7980
const ContextPtr & context,
8081
ClusterPtr) const
8182
{

src/Storages/StorageFileCluster.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ class StorageFileCluster : public IStorageCluster
2929
std::string getName() const override { return "FileCluster"; }
3030
RemoteQueryExecutor::Extension getTaskIteratorExtension(
3131
const ActionsDAG::Node * predicate,
32+
const std::optional<ActionsDAG> & filter_actions_dag,
3233
const ContextPtr & context,
3334
ClusterPtr) const override;
3435

src/Storages/StorageReplicatedMergeTree.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6007,7 +6007,7 @@ std::optional<QueryPipeline> StorageReplicatedMergeTree::distributedWriteFromClu
60076007
ContextMutablePtr query_context = Context::createCopy(local_context);
60086008
query_context->increaseDistributedDepth();
60096009

6010-
auto extension = src_storage_cluster->getTaskIteratorExtension(nullptr, local_context, src_cluster);
6010+
auto extension = src_storage_cluster->getTaskIteratorExtension(nullptr, {}, local_context, src_cluster);
60116011

60126012
size_t replica_index = 0;
60136013
for (const auto & replicas : src_cluster->getShardsAddresses())

src/Storages/StorageURLCluster.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ void StorageURLCluster::updateQueryToSendIfNeeded(ASTPtr & query, const StorageS
9595

9696
RemoteQueryExecutor::Extension StorageURLCluster::getTaskIteratorExtension(
9797
const ActionsDAG::Node * predicate,
98+
const std::optional<ActionsDAG> & /* filter_actions_dag */,
9899
const ContextPtr & context,
99100
ClusterPtr) const
100101
{

src/Storages/StorageURLCluster.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ class StorageURLCluster : public IStorageCluster
3232
std::string getName() const override { return "URLCluster"; }
3333
RemoteQueryExecutor::Extension getTaskIteratorExtension(
3434
const ActionsDAG::Node * predicate,
35+
const std::optional<ActionsDAG> & filter_actions_dag,
3536
const ContextPtr & context,
3637
ClusterPtr) const override;
3738

0 commit comments

Comments
 (0)