[chore](table) Add batch method to get visible version of the olap table (#38949) (#39495)

Cherry-pick #38949
This commit is contained in:
walter
2024-08-17 16:55:06 +08:00
committed by GitHub
parent b0da8430bc
commit fd4d1f4e4f

View File

@ -46,6 +46,7 @@ import org.apache.doris.common.io.DeepCopy;
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 class OlapTable extends Table implements MTMVRelatedTableIf {
return baseIndexMeta.getSchemaVersion();
}
public void setEnableSingleReplicaCompaction(boolean enableSingleReplicaCompaction) {
if (tableProperty == null) {
tableProperty = new TableProperty(new HashMap<>());
@ -2773,6 +2773,37 @@ public class OlapTable extends Table implements MTMVRelatedTableIf {
return tableAttributes.getVisibleVersion();
}
// Get the table versions in batch.
public static List<Long> getVisibleVersionByTableIds(Collection<Long> tableIds) {
List<OlapTable> 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<Long> getVisibleVersionInBatch(Collection<OlapTable> tables) {
if (tables.isEmpty()) {
return new ArrayList<>();
}
return tables.stream()
.map(table -> table.tableAttributes.getVisibleVersion())
.collect(Collectors.toList());
}
public long getVisibleVersionTime() {
return tableAttributes.getVisibleVersionTime();
}