Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,10 @@ protected Optional<ColumnStatistic> doLoad(StatisticsCacheKey key) {
}
// Load from data source metadata
try {
TableIf table = Env.getCurrentEnv().getCatalogMgr().getCatalog(key.catalogId)
.getDbOrMetaException(key.dbId).getTableOrMetaException(key.tableId);
TableIf table = StatisticsUtil.findTable(key.catalogId, key.dbId, key.tableId);
columnStatistic = table.getColumnStatistic(key.colName);
} catch (Exception e) {
LOG.warn(String.format("Exception to get column statistics by metadata. [Catalog:%d, DB:%d, Table:%d]",
LOG.debug(String.format("Exception to get column statistics by metadata. [Catalog:%d, DB:%d, Table:%d]",
key.catalogId, key.dbId, key.tableId), e);
}
return columnStatistic;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,17 @@
package org.apache.doris.statistics;

import org.apache.doris.catalog.Column;
import org.apache.doris.catalog.DatabaseIf;
import org.apache.doris.catalog.Env;
import org.apache.doris.catalog.PrimitiveType;
import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.Type;
import org.apache.doris.catalog.external.ExternalDatabase;
import org.apache.doris.catalog.external.ExternalTable;
import org.apache.doris.catalog.external.HMSExternalDatabase;
import org.apache.doris.catalog.external.HMSExternalTable;
import org.apache.doris.common.ThreadPoolManager;
import org.apache.doris.datasource.CatalogIf;
import org.apache.doris.datasource.CatalogMgr;
import org.apache.doris.datasource.HMSExternalCatalog;
import org.apache.doris.ha.FrontendNodeType;
Expand Down Expand Up @@ -57,6 +62,7 @@
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.function.Function;

public class CacheTest extends TestWithFeService {

Expand Down Expand Up @@ -229,20 +235,34 @@ public Env getCurrentEnv() {
}
};

new MockUp<CatalogMgr>() {
@Mock
public <E extends Exception> CatalogIf<? extends DatabaseIf<? extends TableIf>>
getCatalogOrException(long id, Function<Long, E> e) throws E {
return catalog;
}
};

new MockUp<HMSExternalCatalog>() {
@Mock
public ExternalDatabase<? extends ExternalTable> getDbNullable(long dbId) {
return db;
}
};

new MockUp<HMSExternalDatabase>() {

@Mock
public HMSExternalTable getTableNullable(long tableId) {
return table;
}
};

new Expectations() {
{
env.getCatalogMgr();
result = mgr;

mgr.getCatalog(1);
result = catalog;

catalog.getDbOrMetaException(1);
result = db;

db.getTableOrMetaException(1);
result = table;

table.getColumnStatistic("col");
result = new ColumnStatistic(1, 2,
null, 3, 4, 5, 6, 7,
Expand Down