Skip to content

Commit 2abc4b1

Browse files
committed
do not throw if failed reading iceberg metadata
1 parent c380e31 commit 2abc4b1

File tree

1 file changed

+28
-13
lines changed

1 file changed

+28
-13
lines changed

src/Storages/System/StorageSystemTables.cpp

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -607,18 +607,25 @@ class TablesBlockSource : public ISource
607607
if (columns_mask[src_index++])
608608
{
609609
bool inserted = false;
610-
// Extract from specific DataLake metadata if suitable
611-
if (auto * obj = dynamic_cast<StorageObjectStorageCluster *>(table.get()))
610+
try
612611
{
613-
if (auto * dl_meta = obj->getExternalMetadata(context))
612+
// Extract from specific DataLake metadata if suitable
613+
if (auto * obj = dynamic_cast<StorageObjectStorageCluster *>(table.get()))
614614
{
615-
if (auto p = dl_meta->partitionKey(context); p.has_value())
615+
if (auto * dl_meta = obj->getExternalMetadata(context))
616616
{
617-
res_columns[res_index++]->insert(*p);
618-
inserted = true;
617+
if (auto p = dl_meta->partitionKey(context); p.has_value())
618+
{
619+
res_columns[res_index++]->insert(*p);
620+
inserted = true;
621+
}
619622
}
620623
}
621-
624+
}
625+
catch (const Exception &)
626+
{
627+
/// Failed to get info from Iceberg. It's not critical, just log it.
628+
tryLogCurrentException("StorageSystemTables");
622629
}
623630

624631
if (!inserted)
@@ -634,18 +641,26 @@ class TablesBlockSource : public ISource
634641
{
635642
bool inserted = false;
636643

637-
// Extract from specific DataLake metadata if suitable
638-
if (auto * obj = dynamic_cast<StorageObjectStorageCluster *>(table.get()))
644+
try
639645
{
640-
if (auto * dl_meta = obj->getExternalMetadata(context))
646+
// Extract from specific DataLake metadata if suitable
647+
if (auto * obj = dynamic_cast<StorageObjectStorageCluster *>(table.get()))
641648
{
642-
if (auto p = dl_meta->sortingKey(context); p.has_value())
649+
if (auto * dl_meta = obj->getExternalMetadata(context))
643650
{
644-
res_columns[res_index++]->insert(*p);
645-
inserted = true;
651+
if (auto p = dl_meta->sortingKey(context); p.has_value())
652+
{
653+
res_columns[res_index++]->insert(*p);
654+
inserted = true;
655+
}
646656
}
647657
}
648658
}
659+
catch (const Exception &)
660+
{
661+
/// Failed to get info from Iceberg. It's not critical, just log it.
662+
tryLogCurrentException("StorageSystemTables");
663+
}
649664

650665
if (!inserted)
651666
{

0 commit comments

Comments
 (0)