mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-04 05:22:17 +00:00
Fixed glob iterator for table function cluster path without regex characters
This commit is contained in:
parent
81b5ad3b26
commit
223b954205
@ -832,6 +832,7 @@ StorageAzureBlobSource::GlobIterator::GlobIterator(
|
|||||||
blobs_with_metadata.emplace_back(blob_path_with_globs, object_metadata);
|
blobs_with_metadata.emplace_back(blob_path_with_globs, object_metadata);
|
||||||
if (outer_blobs)
|
if (outer_blobs)
|
||||||
outer_blobs->emplace_back(blobs_with_metadata.back());
|
outer_blobs->emplace_back(blobs_with_metadata.back());
|
||||||
|
is_finished = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -850,8 +851,10 @@ RelativePathWithMetadata StorageAzureBlobSource::GlobIterator::next()
|
|||||||
{
|
{
|
||||||
std::lock_guard lock(next_mutex);
|
std::lock_guard lock(next_mutex);
|
||||||
|
|
||||||
if (is_finished)
|
if (is_finished && index >= blobs_with_metadata.size())
|
||||||
|
{
|
||||||
return {};
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
bool need_new_batch = blobs_with_metadata.empty() || index >= blobs_with_metadata.size();
|
bool need_new_batch = blobs_with_metadata.empty() || index >= blobs_with_metadata.size();
|
||||||
|
|
||||||
|
@ -81,9 +81,9 @@ void StorageAzureBlobCluster::addColumnsStructureToQuery(ASTPtr & query, const S
|
|||||||
|
|
||||||
RemoteQueryExecutor::Extension StorageAzureBlobCluster::getTaskIteratorExtension(ASTPtr query, const ContextPtr & context) const
|
RemoteQueryExecutor::Extension StorageAzureBlobCluster::getTaskIteratorExtension(ASTPtr query, const ContextPtr & context) const
|
||||||
{
|
{
|
||||||
auto iterator = std::make_shared<StorageAzureBlobSource::Iterator>(
|
auto iterator = std::make_shared<StorageAzureBlobSource::GlobIterator>(
|
||||||
object_storage.get(), configuration.container, std::nullopt,
|
object_storage.get(), configuration.container, configuration.blob_path,
|
||||||
configuration.blob_path, query, virtual_block, context, nullptr);
|
query, virtual_block, context, nullptr);
|
||||||
auto callback = std::make_shared<std::function<String()>>([iterator]() mutable -> String{ return iterator->next().relative_path; });
|
auto callback = std::make_shared<std::function<String()>>([iterator]() mutable -> String{ return iterator->next().relative_path; });
|
||||||
return RemoteQueryExecutor::Extension{ .task_iterator = std::move(callback) };
|
return RemoteQueryExecutor::Extension{ .task_iterator = std::move(callback) };
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user