diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java index 92a9059e61141e..91ec9210bb02f7 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java @@ -46,6 +46,7 @@ import org.apache.doris.common.io.Text; import org.apache.doris.common.util.PropertyAnalyzer; import org.apache.doris.common.util.Util; +import org.apache.doris.datasource.InternalCatalog; import org.apache.doris.mtmv.MTMVRelatedTableIf; import org.apache.doris.mtmv.MTMVSnapshotIf; import org.apache.doris.mtmv.MTMVVersionSnapshot; @@ -2156,7 +2157,6 @@ public int getBaseSchemaVersion() { return baseIndexMeta.getSchemaVersion(); } - public void setEnableSingleReplicaCompaction(boolean enableSingleReplicaCompaction) { if (tableProperty == null) { tableProperty = new TableProperty(new HashMap<>()); @@ -2773,6 +2773,37 @@ public long getVisibleVersion() { return tableAttributes.getVisibleVersion(); } + // Get the table versions in batch. + public static List getVisibleVersionByTableIds(Collection tableIds) { + List tables = new ArrayList<>(); + + InternalCatalog catalog = Env.getCurrentEnv().getInternalCatalog(); + for (long tableId : tableIds) { + Table table = catalog.getTableByTableId(tableId); + if (table == null) { + throw new RuntimeException("get table visible version failed, no such table " + tableId + " exists"); + } + if (table.getType() != TableType.OLAP) { + throw new RuntimeException( + "get table visible version failed, table " + tableId + " is not a OLAP table"); + } + tables.add((OlapTable) table); + } + + return getVisibleVersionInBatch(tables); + } + + // Get the table versions in batch. + public static List getVisibleVersionInBatch(Collection tables) { + if (tables.isEmpty()) { + return new ArrayList<>(); + } + + return tables.stream() + .map(table -> table.tableAttributes.getVisibleVersion()) + .collect(Collectors.toList()); + } + public long getVisibleVersionTime() { return tableAttributes.getVisibleVersionTime(); }