From 9d15be75157a1eb7fe37d5a385dd483bf0b7e287 Mon Sep 17 00:00:00 2001 From: Ilia Alshanetsky Date: Wed, 10 Jun 2026 16:31:36 -0400 Subject: [PATCH] client: add SelectWithExternalData(const Query&, ExternalTables) overload The Impl already took a full Query. The public surface only had the string versions, so callers could not attach settings, params, query id or OnProgress etc. when doing SELECT with external tables. Thin forwarding. --- clickhouse/client.cpp | 4 ++++ clickhouse/client.h | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/clickhouse/client.cpp b/clickhouse/client.cpp index cf21e46e..132fd47b 100644 --- a/clickhouse/client.cpp +++ b/clickhouse/client.cpp @@ -1354,6 +1354,10 @@ void Client::SelectWithExternalDataCancelable(const std::string& query, const st impl_->SelectWithExternalData(Query(query, query_id).OnDataCancelable(std::move(cb)), external_tables); } +void Client::SelectWithExternalData(const Query& query, const ExternalTables& external_tables) { + impl_->SelectWithExternalData(query, external_tables); +} + void Client::BeginExecute(const Query& query) { impl_->BeginExecuteQuery(query); } diff --git a/clickhouse/client.h b/clickhouse/client.h index c2608ca3..4cc9b832 100644 --- a/clickhouse/client.h +++ b/clickhouse/client.h @@ -270,6 +270,10 @@ class Client { void SelectWithExternalDataCancelable(const std::string& query, const ExternalTables& external_tables, SelectCancelableCallback cb); void SelectWithExternalDataCancelable(const std::string& query, const std::string& query_id, const ExternalTables& external_tables, SelectCancelableCallback cb); + /// Same as SelectWithExternalData but takes a fully-configured Query + /// (settings, params, callbacks, query_id, OnData) instead of a bare string. + void SelectWithExternalData(const Query& query, const ExternalTables& external_tables); + /// EXPERIMENTAL. Intends for execute arbitrary queries while reading the data interactively with /// NextBlock(). void BeginExecute(const Query& query);