Skip to content

Commit ab636c1

Browse files
authored
Merge pull request #836 from Altinity/feature/antalya-25.3/pruning_for_iceberg_cluster
25.3 Antalya port of #770 - iceberg
2 parents 81b5ad3 + 237117a commit ab636c1

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
@@ -72,7 +72,7 @@ void ReadFromCluster::createExtension(const ActionsDAG::Node * predicate)
7272
if (extension)
7373
return;
7474

75-
extension = storage->getTaskIteratorExtension(predicate, context, cluster);
75+
extension = storage->getTaskIteratorExtension(predicate, filter_actions_dag, context, cluster);
7676
}
7777

7878
/// 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
@@ -362,12 +362,13 @@ void StorageObjectStorageCluster::updateQueryToSendIfNeeded(
362362

363363
RemoteQueryExecutor::Extension StorageObjectStorageCluster::getTaskIteratorExtension(
364364
const ActionsDAG::Node * predicate,
365+
const std::optional<ActionsDAG> & filter_actions_dag,
365366
const ContextPtr & local_context,
366367
ClusterPtr cluster) const
367368
{
368369
auto iterator = StorageObjectStorageSource::createFileIterator(
369370
configuration, configuration->getQuerySettings(local_context), object_storage, /* distributed_processing */false,
370-
local_context, predicate, {}, getVirtualsList(), nullptr, local_context->getFileProgressCallback(), /*ignore_archive_globs=*/true);
371+
local_context, predicate, filter_actions_dag, getVirtualsList(), nullptr, local_context->getFileProgressCallback(), /*ignore_archive_globs=*/true);
371372

372373
std::vector<std::string> ids_of_hosts;
373374
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
@@ -1164,7 +1164,7 @@ std::optional<QueryPipeline> StorageDistributed::distributedWriteFromClusterStor
11641164
const auto cluster = getCluster();
11651165

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

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

src/Storages/StorageFileCluster.cpp

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

8080
RemoteQueryExecutor::Extension StorageFileCluster::getTaskIteratorExtension(
8181
const ActionsDAG::Node * predicate,
82+
const std::optional<ActionsDAG> & /* filter_actions_dag */,
8283
const ContextPtr & context,
8384
ClusterPtr) const
8485
{

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
@@ -6013,7 +6013,7 @@ std::optional<QueryPipeline> StorageReplicatedMergeTree::distributedWriteFromClu
60136013
ContextMutablePtr query_context = Context::createCopy(local_context);
60146014
query_context->increaseDistributedDepth();
60156015

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

60186018
size_t replica_index = 0;
60196019
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
@@ -116,6 +116,7 @@ void StorageURLCluster::updateQueryToSendIfNeeded(ASTPtr & query, const StorageS
116116

117117
RemoteQueryExecutor::Extension StorageURLCluster::getTaskIteratorExtension(
118118
const ActionsDAG::Node * predicate,
119+
const std::optional<ActionsDAG> & /* filter_actions_dag */,
119120
const ContextPtr & context,
120121
ClusterPtr) const
121122
{

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)