You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by yi...@apache.org on 2022/06/25 13:52:00 UTC
[doris] branch master updated: [feature-wip](multi-catalog) refactor catalog interface (#10320)
This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 7fe4b20da3 [feature-wip](multi-catalog) refactor catalog interface (#10320)
7fe4b20da3 is described below
commit 7fe4b20da3abe0110b9694aff9a9be3215fe775d
Author: Mingyu Chen <mo...@gmail.com>
AuthorDate: Sat Jun 25 21:51:54 2022 +0800
[feature-wip](multi-catalog) refactor catalog interface (#10320)
---
.../schema_scanner/schema_schemata_scanner.cpp | 16 +-
.../exec/schema_scanner/schema_tables_scanner.cpp | 20 +-
.../main/java/org/apache/doris/alter/Alter.java | 18 +-
.../java/org/apache/doris/alter/AlterHandler.java | 2 +-
.../doris/alter/MaterializedViewHandler.java | 6 +-
.../java/org/apache/doris/alter/RollupJobV2.java | 22 +--
.../apache/doris/alter/SchemaChangeHandler.java | 2 +-
.../org/apache/doris/alter/SchemaChangeJobV2.java | 14 +-
.../org/apache/doris/analysis/AlterViewStmt.java | 18 +-
.../org/apache/doris/analysis/AnalyzeStmt.java | 6 +-
.../java/org/apache/doris/analysis/Analyzer.java | 19 +-
.../org/apache/doris/analysis/BaseTableRef.java | 8 +-
.../doris/analysis/CreateDataSyncJobStmt.java | 2 +-
.../doris/analysis/CreateRoutineLoadStmt.java | 2 +-
.../org/apache/doris/analysis/DataDescription.java | 2 +-
.../org/apache/doris/analysis/DescribeStmt.java | 2 +-
.../org/apache/doris/analysis/EncryptKeyRef.java | 2 +-
.../java/org/apache/doris/analysis/ExportStmt.java | 2 +-
.../java/org/apache/doris/analysis/FromClause.java | 2 +-
.../apache/doris/analysis/FunctionCallExpr.java | 16 +-
.../java/org/apache/doris/analysis/InsertStmt.java | 21 ++-
.../java/org/apache/doris/analysis/LoadStmt.java | 2 +-
.../org/apache/doris/analysis/LockTablesStmt.java | 2 +-
.../java/org/apache/doris/analysis/QueryStmt.java | 8 +-
.../java/org/apache/doris/analysis/SelectStmt.java | 20 +-
.../apache/doris/analysis/SetOperationStmt.java | 4 +-
.../org/apache/doris/analysis/ShowAlterStmt.java | 5 +-
.../org/apache/doris/analysis/ShowDataStmt.java | 2 +-
.../apache/doris/analysis/ShowPartitionsStmt.java | 2 +-
.../org/apache/doris/analysis/ShowViewStmt.java | 2 +-
.../org/apache/doris/analysis/StmtRewriter.java | 2 +-
.../java/org/apache/doris/analysis/UpdateStmt.java | 2 +-
.../java/org/apache/doris/analysis/WithClause.java | 6 +-
.../org/apache/doris/backup/BackupHandler.java | 4 +-
.../java/org/apache/doris/backup/BackupJob.java | 2 +-
.../java/org/apache/doris/backup/RestoreJob.java | 12 +-
.../java/org/apache/doris/catalog/Catalog.java | 166 +++++------------
.../apache/doris/catalog/CatalogRecycleBin.java | 2 +-
.../apache/doris/catalog/ColocateTableIndex.java | 2 +-
.../org/apache/doris/catalog/EncryptKeyHelper.java | 8 +-
.../org/apache/doris/catalog/MetadataViewer.java | 6 +-
.../org/apache/doris/catalog/RefreshManager.java | 4 +-
.../main/java/org/apache/doris/catalog/Table.java | 49 +----
.../java/org/apache/doris/catalog/TableIf.java | 64 +++++--
.../org/apache/doris/catalog/TabletStatMgr.java | 4 +-
.../doris/catalog/external/ExternalTable.java | 40 ++--
.../clone/ColocateTableCheckerAndBalancer.java | 4 +-
.../doris/clone/DynamicPartitionScheduler.java | 6 +-
.../java/org/apache/doris/clone/TabletChecker.java | 10 +-
.../org/apache/doris/clone/TabletSchedCtx.java | 4 +-
.../org/apache/doris/clone/TabletScheduler.java | 2 +-
.../org/apache/doris/common/proc/DbsProcDir.java | 32 ++--
.../common/proc/IncompleteTabletsProcNode.java | 7 +-
.../apache/doris/common/proc/IndexInfoProcDir.java | 18 +-
.../apache/doris/common/proc/JobsDbProcDir.java | 7 +-
.../doris/common/proc/StatisticProcNode.java | 57 +++---
.../org/apache/doris/common/proc/TableProcDir.java | 26 ++-
.../apache/doris/common/proc/TablesProcDir.java | 25 +--
.../doris/common/proc/TabletHealthProcDir.java | 35 ++--
.../apache/doris/common/util/MetaLockUtils.java | 34 ++--
.../org/apache/doris/common/util/SmallFileMgr.java | 6 +-
.../doris/consistency/CheckConsistencyJob.java | 4 +-
.../doris/consistency/ConsistencyChecker.java | 6 +-
.../org/apache/doris/datasource/DataSourceIf.java | 28 +--
.../org/apache/doris/datasource/DataSourceMgr.java | 38 +++-
.../doris/datasource/EsExternalDataSource.java | 10 +-
.../doris/datasource/ExternalDataSource.java | 28 +--
.../doris/datasource/HMSExternalDataSource.java | 35 ++--
.../doris/datasource/InternalDataSource.java | 41 ++--
.../doris/external/elasticsearch/EsRepository.java | 4 +-
.../iceberg/IcebergTableCreationRecordMgr.java | 2 +-
.../apache/doris/httpv2/rest/CancelLoadAction.java | 2 +-
.../apache/doris/httpv2/rest/GetDdlStmtAction.java | 2 +-
.../doris/httpv2/rest/GetStreamLoadState.java | 2 +-
.../apache/doris/httpv2/rest/MetaInfoAction.java | 12 +-
.../apache/doris/httpv2/rest/RowCountAction.java | 2 +-
.../org/apache/doris/httpv2/rest/ShowAction.java | 15 +-
.../doris/httpv2/rest/StorageTypeCheckAction.java | 2 +-
.../doris/httpv2/rest/TableQueryPlanAction.java | 2 +-
.../doris/httpv2/rest/TableRowCountAction.java | 2 +-
.../doris/httpv2/rest/TableSchemaAction.java | 2 +-
.../doris/httpv2/restv2/MetaInfoActionV2.java | 6 +-
.../doris/httpv2/restv2/StatisticAction.java | 8 +-
.../java/org/apache/doris/load/DeleteHandler.java | 4 +-
.../main/java/org/apache/doris/load/DeleteJob.java | 2 +-
.../main/java/org/apache/doris/load/ExportJob.java | 2 +-
.../main/java/org/apache/doris/load/ExportMgr.java | 2 +-
.../src/main/java/org/apache/doris/load/Load.java | 20 +-
.../java/org/apache/doris/load/LoadChecker.java | 4 +-
.../org/apache/doris/load/StreamLoadRecordMgr.java | 2 +-
.../org/apache/doris/load/loadv2/BulkLoadJob.java | 25 +--
.../apache/doris/load/loadv2/InsertLoadJob.java | 9 +-
.../java/org/apache/doris/load/loadv2/LoadJob.java | 4 +-
.../org/apache/doris/load/loadv2/LoadManager.java | 6 +-
.../doris/load/loadv2/LoadingTaskPlanner.java | 5 +-
.../org/apache/doris/load/loadv2/MiniLoadJob.java | 2 +-
.../org/apache/doris/load/loadv2/SparkLoadJob.java | 14 +-
.../doris/load/loadv2/SparkLoadPendingTask.java | 4 +-
.../load/routineload/KafkaRoutineLoadJob.java | 2 +-
.../doris/load/routineload/KafkaTaskInfo.java | 3 +-
.../doris/load/routineload/RoutineLoadJob.java | 16 +-
.../doris/load/routineload/RoutineLoadManager.java | 6 +-
.../java/org/apache/doris/load/sync/SyncJob.java | 4 +-
.../org/apache/doris/load/sync/SyncJobManager.java | 8 +-
.../apache/doris/load/sync/canal/CanalSyncJob.java | 2 +-
.../doris/load/update/UpdateStmtExecutor.java | 9 +-
.../java/org/apache/doris/master/MasterImpl.java | 2 +-
.../master/PartitionInMemoryInfoCollector.java | 4 +-
.../org/apache/doris/master/ReportHandler.java | 8 +-
.../doris/nereids/rules/analysis/BindRelation.java | 2 +-
.../java/org/apache/doris/persist/EditLog.java | 3 +-
.../org/apache/doris/policy/DropPolicyLog.java | 2 +-
.../main/java/org/apache/doris/policy/Policy.java | 8 +-
.../java/org/apache/doris/policy/RowPolicy.java | 2 +-
.../java/org/apache/doris/qe/ConnectContext.java | 6 +-
.../java/org/apache/doris/qe/ConnectProcessor.java | 8 +-
.../java/org/apache/doris/qe/ShowExecutor.java | 207 +++++++++++----------
.../java/org/apache/doris/qe/StmtExecutor.java | 9 +-
.../apache/doris/service/FrontendServiceImpl.java | 58 +++---
.../doris/statistics/StatisticsJobManager.java | 2 +-
.../doris/statistics/StatisticsJobScheduler.java | 2 +-
.../apache/doris/statistics/StatisticsManager.java | 30 +--
.../java/org/apache/doris/system/Diagnoser.java | 2 +-
.../org/apache/doris/system/SystemInfoService.java | 2 +-
.../org/apache/doris/task/ExportPendingTask.java | 2 +-
.../java/org/apache/doris/task/LoadEtlTask.java | 2 +-
.../org/apache/doris/task/LoadPendingTask.java | 2 +-
.../doris/transaction/DatabaseTransactionMgr.java | 19 +-
.../transaction/DbUsedDataQuotaInfoCollector.java | 4 +-
.../doris/transaction/GlobalTransactionMgr.java | 4 +-
.../doris/transaction/PublishVersionDaemon.java | 3 +-
.../org/apache/doris/alter/AlterJobV2Test.java | 3 +-
.../java/org/apache/doris/alter/AlterTest.java | 29 +--
.../org/apache/doris/alter/BatchRollupJobTest.java | 6 +-
.../org/apache/doris/alter/RollupJobV2Test.java | 10 +-
.../apache/doris/alter/SchemaChangeJobV2Test.java | 8 +-
.../org/apache/doris/analysis/AccessTestUtil.java | 119 +++++++++---
.../doris/analysis/AdminShowReplicaTest.java | 2 +-
.../doris/analysis/CreateDataSyncJobStmtTest.java | 9 +-
.../doris/analysis/CreateRoutineLoadStmtTest.java | 9 +-
.../apache/doris/analysis/DataDescriptionTest.java | 9 +-
.../apache/doris/analysis/DescribeStmtTest.java | 81 --------
.../apache/doris/analysis/GroupByClauseTest.java | 1 +
.../org/apache/doris/analysis/LoadStmtTest.java | 3 +
.../apache/doris/analysis/ShowDataStmtTest.java | 15 +-
.../analysis/TableNameComparedLowercaseTest.java | 6 +-
.../analysis/TableNameStoredLowercaseTest.java | 4 +-
.../apache/doris/analysis/VirtualSlotRefTest.java | 2 -
.../org/apache/doris/backup/BackupHandlerTest.java | 11 +-
.../org/apache/doris/backup/BackupJobTest.java | 11 +-
.../org/apache/doris/backup/CatalogMocker.java | 22 ++-
.../org/apache/doris/backup/RestoreJobTest.java | 9 +-
.../org/apache/doris/catalog/AdminStmtTest.java | 2 +-
.../apache/doris/catalog/CatalogOperationTest.java | 2 +-
.../org/apache/doris/catalog/CatalogTestUtil.java | 4 +-
.../apache/doris/catalog/ColocateTableTest.java | 6 +-
.../apache/doris/catalog/CreateEncryptKeyTest.java | 4 +-
.../apache/doris/catalog/CreateFunctionTest.java | 4 +-
.../apache/doris/catalog/CreateTableLikeTest.java | 14 +-
.../org/apache/doris/catalog/CreateTableTest.java | 2 +-
.../org/apache/doris/catalog/CreateViewTest.java | 4 +-
.../java/org/apache/doris/catalog/DropDbTest.java | 20 +-
.../apache/doris/catalog/DropPartitionTest.java | 6 +-
.../org/apache/doris/catalog/DropTableTest.java | 4 +-
.../doris/catalog/DynamicPartitionTableTest.java | 166 +++++++++--------
.../apache/doris/catalog/MetadataViewerTest.java | 18 +-
.../apache/doris/catalog/ModifyBackendTest.java | 2 +-
.../java/org/apache/doris/catalog/RecoverTest.java | 7 +-
.../apache/doris/catalog/TempPartitionTest.java | 21 ++-
.../apache/doris/catalog/TruncateTableTest.java | 2 +-
.../org/apache/doris/clone/DiskRebalanceTest.java | 13 +-
.../java/org/apache/doris/clone/RebalanceTest.java | 17 +-
.../doris/clone/TabletRepairAndBalanceTest.java | 2 +-
.../doris/cluster/SystemInfoServiceTest.java | 9 +-
.../apache/doris/common/proc/DbsProcDirTest.java | 50 +++--
.../apache/doris/common/util/SmallFileMgrTest.java | 8 +-
.../elasticsearch/EsShardPartitionsTest.java | 9 +-
.../org/apache/doris/http/DorisHttpTestCase.java | 49 +++--
.../org/apache/doris/load/DeleteHandlerTest.java | 14 +-
.../org/apache/doris/load/LoadCheckerTest.java | 11 +-
.../doris/load/loadv2/BrokerLoadJobTest.java | 70 +++----
.../doris/load/loadv2/InsertLoadJobTest.java | 11 +-
.../apache/doris/load/loadv2/LoadManagerTest.java | 34 ++--
.../apache/doris/load/loadv2/SparkLoadJobTest.java | 15 +-
.../doris/load/routineload/RoutineLoadJobTest.java | 35 ++--
.../load/routineload/RoutineLoadManagerTest.java | 74 ++++----
.../load/routineload/RoutineLoadSchedulerTest.java | 28 +--
.../apache/doris/load/sync/SyncJobManagerTest.java | 9 +-
.../doris/load/sync/canal/CanalSyncJobTest.java | 19 +-
.../org/apache/doris/mysql/MysqlProtoTest.java | 10 +-
.../doris/mysql/privilege/PrivEntryTest.java | 8 +-
.../apache/doris/persist/LoadJobV2PersistTest.java | 11 +-
.../org/apache/doris/planner/QueryPlanTest.java | 8 +-
.../apache/doris/planner/ResourceTagQueryTest.java | 2 +-
.../org/apache/doris/qe/PartitionCacheTest.java | 33 +++-
.../java/org/apache/doris/qe/ShowExecutorTest.java | 30 ++-
.../org/apache/doris/task/LoadEtlTaskTest.java | 13 +-
.../org/apache/doris/task/LoadPendingTaskTest.java | 13 +-
.../transaction/DatabaseTransactionMgrTest.java | 3 +-
.../transaction/GlobalTransactionMgrTest.java | 62 +++---
.../org/apache/doris/utframe/AnotherDemoTest.java | 4 +-
.../doris/utframe/DemoMultiBackendsTest.java | 4 +-
.../java/org/apache/doris/utframe/DemoTest.java | 4 +-
gensrc/thrift/FrontendService.thrift | 4 +-
204 files changed, 1664 insertions(+), 1375 deletions(-)
diff --git a/be/src/exec/schema_scanner/schema_schemata_scanner.cpp b/be/src/exec/schema_scanner/schema_schemata_scanner.cpp
index cd794bdeaa..26e0ea580c 100644
--- a/be/src/exec/schema_scanner/schema_schemata_scanner.cpp
+++ b/be/src/exec/schema_scanner/schema_schemata_scanner.cpp
@@ -73,12 +73,16 @@ Status SchemaSchemataScanner::fill_one_row(Tuple* tuple, MemPool* pool) {
// catalog
{
- void* slot = tuple->get_slot(_tuple_desc->slots()[0]->tuple_offset());
- StringValue* str_slot = reinterpret_cast<StringValue*>(slot);
- std::string catalog_name = _db_result.catalogs[_db_index];
- str_slot->ptr = (char*)pool->allocate(catalog_name.size());
- str_slot->len = catalog_name.size();
- memcpy(str_slot->ptr, catalog_name.c_str(), str_slot->len);
+ if (!_db_result.__isset.catalogs) {
+ tuple->set_null(_tuple_desc->slots()[0]->null_indicator_offset());
+ } else {
+ void* slot = tuple->get_slot(_tuple_desc->slots()[0]->tuple_offset());
+ StringValue* str_slot = reinterpret_cast<StringValue*>(slot);
+ std::string catalog_name = _db_result.catalogs[_db_index];
+ str_slot->ptr = (char*)pool->allocate(catalog_name.size());
+ str_slot->len = catalog_name.size();
+ memcpy(str_slot->ptr, catalog_name.c_str(), str_slot->len);
+ }
}
// schema
{
diff --git a/be/src/exec/schema_scanner/schema_tables_scanner.cpp b/be/src/exec/schema_scanner/schema_tables_scanner.cpp
index 142200f9ed..381c047b53 100644
--- a/be/src/exec/schema_scanner/schema_tables_scanner.cpp
+++ b/be/src/exec/schema_scanner/schema_tables_scanner.cpp
@@ -90,12 +90,16 @@ Status SchemaTablesScanner::fill_one_row(Tuple* tuple, MemPool* pool) {
const TTableStatus& tbl_status = _table_result.tables[_table_index];
// catalog
{
- void* slot = tuple->get_slot(_tuple_desc->slots()[0]->tuple_offset());
- StringValue* str_slot = reinterpret_cast<StringValue*>(slot);
- std::string catalog_name = _db_result.catalogs[_db_index - 1];
- str_slot->ptr = (char*)pool->allocate(catalog_name.size());
- str_slot->len = catalog_name.size();
- memcpy(str_slot->ptr, catalog_name.c_str(), str_slot->len);
+ if (!_db_result.__isset.catalogs) {
+ tuple->set_null(_tuple_desc->slots()[0]->null_indicator_offset());
+ } else {
+ void* slot = tuple->get_slot(_tuple_desc->slots()[0]->tuple_offset());
+ StringValue* str_slot = reinterpret_cast<StringValue*>(slot);
+ std::string catalog_name = _db_result.catalogs[_db_index - 1];
+ str_slot->ptr = (char*)pool->allocate(catalog_name.size());
+ str_slot->len = catalog_name.size();
+ memcpy(str_slot->ptr, catalog_name.c_str(), str_slot->len);
+ }
}
// schema
{
@@ -253,7 +257,9 @@ Status SchemaTablesScanner::fill_one_row(Tuple* tuple, MemPool* pool) {
Status SchemaTablesScanner::get_new_table() {
TGetTablesParams table_params;
table_params.__set_db(_db_result.dbs[_db_index]);
- table_params.__set_catalog(_db_result.catalogs[_db_index]);
+ if (_db_result.__isset.catalogs) {
+ table_params.__set_catalog(_db_result.catalogs[_db_index]);
+ }
_db_index++;
if (nullptr != _param->wild) {
table_params.__set_pattern(*(_param->wild));
diff --git a/fe/fe-core/src/main/java/org/apache/doris/alter/Alter.java b/fe/fe-core/src/main/java/org/apache/doris/alter/Alter.java
index bc4159cd8a..2ae1b21eec 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/alter/Alter.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/alter/Alter.java
@@ -105,7 +105,7 @@ public class Alter {
String tableName = stmt.getBaseIndexName();
// check db
String dbName = stmt.getDBName();
- Database db = Catalog.getCurrentCatalog().getDbOrDdlException(dbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrDdlException(dbName);
// check cluster capacity
Catalog.getCurrentSystemInfo().checkClusterCapacity(stmt.getClusterName());
// check db quota
@@ -118,7 +118,7 @@ public class Alter {
public void processDropMaterializedView(DropMaterializedViewStmt stmt) throws DdlException, MetaNotFoundException {
// check db
String dbName = stmt.getTableName().getDb();
- Database db = Catalog.getCurrentCatalog().getDbOrDdlException(dbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrDdlException(dbName);
String tableName = stmt.getTableName().getTbl();
OlapTable olapTable = (OlapTable) db.getTableOrMetaException(tableName, TableType.OLAP);
@@ -269,7 +269,7 @@ public class Alter {
public void replayModifyComment(ModifyCommentOperationLog operation) throws MetaNotFoundException {
long dbId = operation.getDbId();
long tblId = operation.getTblId();
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(dbId);
Table tbl = db.getTableOrMetaException(tblId);
tbl.writeLock();
try {
@@ -321,7 +321,7 @@ public class Alter {
}
public void replayProcessModifyEngine(ModifyTableEngineOperationLog log) {
- Database db = Catalog.getCurrentCatalog().getDbNullable(log.getDbId());
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable(log.getDbId());
if (db == null) {
return;
}
@@ -377,7 +377,7 @@ public class Alter {
String tableName = dbTableName.getTbl();
final String clusterName = stmt.getClusterName();
- Database db = Catalog.getCurrentCatalog().getDbOrDdlException(dbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrDdlException(dbName);
Table table = db.getTableOrDdlException(tableName);
List<AlterClause> alterClauses = Lists.newArrayList();
// some operations will take long time to process, need to be done outside the table lock
@@ -472,7 +472,7 @@ public class Alter {
long origTblId = log.getOrigTblId();
long newTblId = log.getNewTblId();
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(dbId);
OlapTable origTable = (OlapTable) db.getTableOrMetaException(origTblId, TableType.OLAP);
OlapTable newTbl = (OlapTable) db.getTableOrMetaException(newTblId, TableType.OLAP);
List<Table> tableList = Lists.newArrayList(origTable, newTbl);
@@ -530,7 +530,7 @@ public class Alter {
TableName dbTableName = stmt.getTbl();
String dbName = dbTableName.getDb();
- Database db = Catalog.getCurrentCatalog().getDbOrDdlException(dbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrDdlException(dbName);
String tableName = dbTableName.getTbl();
View view = (View) db.getTableOrMetaException(tableName, TableType.VIEW);
@@ -572,7 +572,7 @@ public class Alter {
String inlineViewDef = alterViewInfo.getInlineViewDef();
List<Column> newFullSchema = alterViewInfo.getNewFullSchema();
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(dbId);
View view = (View) db.getTableOrMetaException(tableId, TableType.VIEW);
db.writeLock();
@@ -713,7 +713,7 @@ public class Alter {
}
public void replayModifyPartition(ModifyPartitionInfo info) throws MetaNotFoundException {
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException(info.getDbId());
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(info.getDbId());
OlapTable olapTable = (OlapTable) db.getTableOrMetaException(info.getTableId(), TableType.OLAP);
olapTable.writeLock();
try {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/alter/AlterHandler.java b/fe/fe-core/src/main/java/org/apache/doris/alter/AlterHandler.java
index 347aa36747..473229dd1e 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/alter/AlterHandler.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/alter/AlterHandler.java
@@ -198,7 +198,7 @@ public abstract class AlterHandler extends MasterDaemon {
* In summary, we only need to update replica's version when replica's version is smaller than X
*/
public void handleFinishAlterTask(AlterReplicaTask task) throws MetaNotFoundException {
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException(task.getDbId());
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(task.getDbId());
OlapTable tbl = (OlapTable) db.getTableOrMetaException(task.getTableId(), Table.TableType.OLAP);
tbl.writeLockOrMetaException();
diff --git a/fe/fe-core/src/main/java/org/apache/doris/alter/MaterializedViewHandler.java b/fe/fe-core/src/main/java/org/apache/doris/alter/MaterializedViewHandler.java
index 64319c4cfb..9612fbb83d 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/alter/MaterializedViewHandler.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/alter/MaterializedViewHandler.java
@@ -837,7 +837,7 @@ public class MaterializedViewHandler extends AlterHandler {
long rollupIndexId = dropInfo.getIndexId();
TabletInvertedIndex invertedIndex = Catalog.getCurrentInvertedIndex();
- Database db = catalog.getDbOrMetaException(dbId);
+ Database db = catalog.getInternalDataSource().getDbOrMetaException(dbId);
OlapTable olapTable = (OlapTable) db.getTableOrMetaException(tableId, Table.TableType.OLAP);
olapTable.writeLock();
try {
@@ -884,7 +884,7 @@ public class MaterializedViewHandler extends AlterHandler {
private void changeTableStatus(long dbId, long tableId, OlapTableState olapTableState) {
try {
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(dbId);
OlapTable olapTable = (OlapTable) db.getTableOrMetaException(tableId, Table.TableType.OLAP);
olapTable.writeLockOrMetaException();
try {
@@ -1038,7 +1038,7 @@ public class MaterializedViewHandler extends AlterHandler {
Preconditions.checkState(!Strings.isNullOrEmpty(dbName));
Preconditions.checkState(!Strings.isNullOrEmpty(tableName));
- Database db = Catalog.getCurrentCatalog().getDbOrDdlException(dbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrDdlException(dbName);
List<AlterJobV2> rollupJobV2List = new ArrayList<>();
OlapTable olapTable;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/alter/RollupJobV2.java b/fe/fe-core/src/main/java/org/apache/doris/alter/RollupJobV2.java
index 8d9c83046a..79ec2d4107 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/alter/RollupJobV2.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/alter/RollupJobV2.java
@@ -182,8 +182,8 @@ public class RollupJobV2 extends AlterJobV2 implements GsonPostProcessable {
Preconditions.checkState(jobState == JobState.PENDING, jobState);
LOG.info("begin to send create rollup replica tasks. job: {}", jobId);
- Database db = Catalog.getCurrentCatalog().getDbOrException(dbId,
- s -> new AlterCancelException("Database " + s + " does not exist"));
+ Database db = Catalog.getCurrentInternalCatalog()
+ .getDbOrException(dbId, s -> new AlterCancelException("Database " + s + " does not exist"));
if (!checkTableStable(db)) {
return;
}
@@ -336,8 +336,8 @@ public class RollupJobV2 extends AlterJobV2 implements GsonPostProcessable {
}
LOG.info("previous transactions are all finished, begin to send rollup tasks. job: {}", jobId);
- Database db = Catalog.getCurrentCatalog().getDbOrException(dbId,
- s -> new AlterCancelException("Databasee " + s + " does not exist"));
+ Database db = Catalog.getCurrentInternalCatalog()
+ .getDbOrException(dbId, s -> new AlterCancelException("Databasee " + s + " does not exist"));
OlapTable tbl;
try {
@@ -416,8 +416,8 @@ public class RollupJobV2 extends AlterJobV2 implements GsonPostProcessable {
// must check if db or table still exist first.
// or if table is dropped, the tasks will never be finished,
// and the job will be in RUNNING state forever.
- Database db = Catalog.getCurrentCatalog().getDbOrException(dbId,
- s -> new AlterCancelException("Databasee " + s + " does not exist"));
+ Database db = Catalog.getCurrentInternalCatalog()
+ .getDbOrException(dbId, s -> new AlterCancelException("Databasee " + s + " does not exist"));
OlapTable tbl;
try {
@@ -527,7 +527,7 @@ public class RollupJobV2 extends AlterJobV2 implements GsonPostProcessable {
AgentTaskQueue.removeBatchTask(rollupBatchTask, TTaskType.ALTER);
// remove all rollup indexes, and set state to NORMAL
TabletInvertedIndex invertedIndex = Catalog.getCurrentInvertedIndex();
- Database db = Catalog.getCurrentCatalog().getDbNullable(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable(dbId);
if (db != null) {
OlapTable tbl = (OlapTable) db.getTableNullable(tableId);
if (tbl != null) {
@@ -561,7 +561,7 @@ public class RollupJobV2 extends AlterJobV2 implements GsonPostProcessable {
* These changes should be same as changes in RollupHander.processAddRollup()
*/
private void replayCreateJob(RollupJobV2 replayedJob) throws MetaNotFoundException {
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(dbId);
OlapTable olapTable = (OlapTable) db.getTableOrMetaException(tableId, Table.TableType.OLAP);
olapTable.writeLock();
@@ -601,7 +601,7 @@ public class RollupJobV2 extends AlterJobV2 implements GsonPostProcessable {
* Should replay all changes in runPendingJob()
*/
private void replayPendingJob(RollupJobV2 replayedJob) throws MetaNotFoundException {
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(dbId);
OlapTable olapTable = (OlapTable) db.getTableOrMetaException(tableId, Table.TableType.OLAP);
olapTable.writeLock();
try {
@@ -622,7 +622,7 @@ public class RollupJobV2 extends AlterJobV2 implements GsonPostProcessable {
* Should replay all changes in runRuningJob()
*/
private void replayRunningJob(RollupJobV2 replayedJob) {
- Database db = Catalog.getCurrentCatalog().getDbNullable(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable(dbId);
if (db != null) {
OlapTable tbl = (OlapTable) db.getTableNullable(tableId);
if (tbl != null) {
@@ -758,7 +758,7 @@ public class RollupJobV2 extends AlterJobV2 implements GsonPostProcessable {
ConnectContext connectContext = new ConnectContext();
Database db;
try {
- db = Catalog.getCurrentCatalog().getDbOrMetaException(dbId);
+ db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(dbId);
} catch (MetaNotFoundException e) {
throw new IOException("error happens when parsing create materialized view stmt: " + origStmt, e);
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeHandler.java b/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeHandler.java
index 433812d6d1..94515cfcfb 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeHandler.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeHandler.java
@@ -1788,7 +1788,7 @@ public class SchemaChangeHandler extends AlterHandler {
Preconditions.checkState(!Strings.isNullOrEmpty(dbName));
Preconditions.checkState(!Strings.isNullOrEmpty(tableName));
- Database db = Catalog.getCurrentCatalog().getDbOrDdlException(dbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrDdlException(dbName);
AlterJobV2 schemaChangeJobV2 = null;
OlapTable olapTable = db.getOlapTableOrDdlException(tableName);
diff --git a/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeJobV2.java b/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeJobV2.java
index c1a5144579..d7a0662bb2 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeJobV2.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeJobV2.java
@@ -198,7 +198,7 @@ public class SchemaChangeJobV2 extends AlterJobV2 {
protected void runPendingJob() throws AlterCancelException {
Preconditions.checkState(jobState == JobState.PENDING, jobState);
LOG.info("begin to send create replica tasks. job: {}", jobId);
- Database db = Catalog.getCurrentCatalog()
+ Database db = Catalog.getCurrentInternalCatalog()
.getDbOrException(dbId, s -> new AlterCancelException("Database " + s + " does not exist"));
if (!checkTableStable(db)) {
@@ -373,7 +373,7 @@ public class SchemaChangeJobV2 extends AlterJobV2 {
}
LOG.info("previous transactions are all finished, begin to send schema change tasks. job: {}", jobId);
- Database db = Catalog.getCurrentCatalog()
+ Database db = Catalog.getCurrentInternalCatalog()
.getDbOrException(dbId, s -> new AlterCancelException("Database " + s + " does not exist"));
OlapTable tbl;
@@ -479,7 +479,7 @@ public class SchemaChangeJobV2 extends AlterJobV2 {
// must check if db or table still exist first.
// or if table is dropped, the tasks will never be finished,
// and the job will be in RUNNING state forever.
- Database db = Catalog.getCurrentCatalog()
+ Database db = Catalog.getCurrentInternalCatalog()
.getDbOrException(dbId, s -> new AlterCancelException("Database " + s + " does not exist"));
OlapTable tbl;
@@ -655,7 +655,7 @@ public class SchemaChangeJobV2 extends AlterJobV2 {
AgentTaskQueue.removeBatchTask(schemaChangeBatchTask, TTaskType.ALTER);
// remove all shadow indexes, and set state to NORMAL
TabletInvertedIndex invertedIndex = Catalog.getCurrentInvertedIndex();
- Database db = Catalog.getCurrentCatalog().getDbNullable(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable(dbId);
if (db != null) {
OlapTable tbl = (OlapTable) db.getTableNullable(tableId);
if (tbl != null) {
@@ -699,7 +699,7 @@ public class SchemaChangeJobV2 extends AlterJobV2 {
* These changes should be same as changes in SchemaChangeHandler.createJob()
*/
private void replayCreateJob(SchemaChangeJobV2 replayedJob) throws MetaNotFoundException {
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(dbId);
OlapTable olapTable = (OlapTable) db.getTableOrMetaException(tableId, TableType.OLAP);
olapTable.writeLock();
try {
@@ -737,7 +737,7 @@ public class SchemaChangeJobV2 extends AlterJobV2 {
* Should replay all changes in runPendingJob()
*/
private void replayPendingJob(SchemaChangeJobV2 replayedJob) throws MetaNotFoundException {
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(dbId);
OlapTable olapTable = (OlapTable) db.getTableOrMetaException(tableId, TableType.OLAP);
olapTable.writeLock();
try {
@@ -757,7 +757,7 @@ public class SchemaChangeJobV2 extends AlterJobV2 {
* Should replay all changes in runRunningJob()
*/
private void replayRunningJob(SchemaChangeJobV2 replayedJob) {
- Database db = Catalog.getCurrentCatalog().getDbNullable(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable(dbId);
if (db != null) {
OlapTable tbl = (OlapTable) db.getTableNullable(tableId);
if (tbl != null) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/AlterViewStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/AlterViewStmt.java
index 93a55b9908..fa12128dc6 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/AlterViewStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/AlterViewStmt.java
@@ -18,7 +18,8 @@
package org.apache.doris.analysis;
import org.apache.doris.catalog.Catalog;
-import org.apache.doris.catalog.Table;
+import org.apache.doris.catalog.DatabaseIf;
+import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.View;
import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.ErrorCode;
@@ -48,18 +49,17 @@ public class AlterViewStmt extends BaseViewStmt {
}
tableName.analyze(analyzer);
-
- Table table = analyzer.getTableOrAnalysisException(tableName);
+ DatabaseIf db = Catalog.getCurrentInternalCatalog().getDbOrAnalysisException(tableName.getDb());
+ TableIf table = db.getTableOrAnalysisException(tableName.getTbl());
if (!(table instanceof View)) {
- throw new AnalysisException(String.format("ALTER VIEW not allowed on a table:%s.%s",
- getDbName(), getTable()));
+ throw new AnalysisException(
+ String.format("ALTER VIEW not allowed on a table:%s.%s", getDbName(), getTable()));
}
- if (!Catalog.getCurrentCatalog().getAuth().checkTblPriv(
- ConnectContext.get(), tableName.getDb(), tableName.getTbl(), PrivPredicate.ALTER)) {
+ if (!Catalog.getCurrentCatalog().getAuth()
+ .checkTblPriv(ConnectContext.get(), tableName.getDb(), tableName.getTbl(), PrivPredicate.ALTER)) {
ErrorReport.reportAnalysisException(ErrorCode.ERR_TABLEACCESS_DENIED_ERROR, "ALTER VIEW",
- ConnectContext.get().getQualifiedUser(),
- ConnectContext.get().getRemoteIP(),
+ ConnectContext.get().getQualifiedUser(), ConnectContext.get().getRemoteIP(),
tableName.getDb() + ": " + tableName.getTbl());
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/AnalyzeStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/AnalyzeStmt.java
index 7c2b94f1ad..00a5cf7479 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/AnalyzeStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/AnalyzeStmt.java
@@ -100,7 +100,7 @@ public class AnalyzeStmt extends DdlStmt {
public Database getDb() throws AnalysisException {
Preconditions.checkArgument(isAnalyzed(),
"The db must be obtained after the parsing is complete");
- return this.analyzer.getCatalog().getDbOrAnalysisException(this.dbId);
+ return this.analyzer.getCatalog().getInternalDataSource().getDbOrAnalysisException(this.dbId);
}
public List<Table> getTables() throws AnalysisException {
@@ -164,7 +164,7 @@ public class AnalyzeStmt extends DdlStmt {
String tblName = this.dbTableName.getTbl();
checkAnalyzePriv(dbName, tblName);
- Database db = analyzer.getCatalog().getDbOrAnalysisException(dbName);
+ Database db = analyzer.getCatalog().getInternalDataSource().getDbOrAnalysisException(dbName);
Table table = db.getTableOrAnalysisException(tblName);
if (this.columnNames != null && !this.columnNames.isEmpty()) {
@@ -191,7 +191,7 @@ public class AnalyzeStmt extends DdlStmt {
if (Strings.isNullOrEmpty(dbName)) {
ErrorReport.reportAnalysisException(ErrorCode.ERR_NO_DB_ERROR);
}
- Database db = analyzer.getCatalog().getDbOrAnalysisException(dbName);
+ Database db = analyzer.getCatalog().getInternalDataSource().getDbOrAnalysisException(dbName);
db.readLock();
try {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/Analyzer.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/Analyzer.java
index 3ccc391f0a..ea3047a8d1 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/Analyzer.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/Analyzer.java
@@ -22,11 +22,12 @@ package org.apache.doris.analysis;
import org.apache.doris.catalog.Catalog;
import org.apache.doris.catalog.Column;
-import org.apache.doris.catalog.Database;
+import org.apache.doris.catalog.DatabaseIf;
import org.apache.doris.catalog.OlapTable;
import org.apache.doris.catalog.OlapTable.OlapTableState;
import org.apache.doris.catalog.Partition.PartitionState;
import org.apache.doris.catalog.Table;
+import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.TableIf.TableType;
import org.apache.doris.catalog.Type;
import org.apache.doris.catalog.View;
@@ -655,14 +656,14 @@ public class Analyzer {
ErrorReport.reportAnalysisException(ErrorCode.ERR_NO_DB_ERROR);
}
- Database database = globalState.catalog.getDbOrAnalysisException(dbName);
- Table table = database.getTableOrAnalysisException(tableName.getTbl());
+ DatabaseIf database = globalState.catalog.getCurrentDataSource().getDbOrAnalysisException(dbName);
+ TableIf table = database.getTableOrAnalysisException(tableName.getTbl());
if (table.getType() == TableType.OLAP && (((OlapTable) table).getState() == OlapTableState.RESTORE
|| ((OlapTable) table).getState() == OlapTableState.RESTORE_WITH_LOAD)) {
- Boolean isNotRestoring = ((OlapTable) table).getPartitions().stream().filter(
- partition -> partition.getState() == PartitionState.RESTORE
- ).collect(Collectors.toList()).isEmpty();
+ Boolean isNotRestoring = ((OlapTable) table).getPartitions().stream()
+ .filter(partition -> partition.getState() == PartitionState.RESTORE).collect(Collectors.toList())
+ .isEmpty();
if (!isNotRestoring) {
// if doing restore with partitions, the status check push down to OlapScanNode::computePartitionInfo to
@@ -693,8 +694,8 @@ public class Analyzer {
}
}
- public Table getTableOrAnalysisException(TableName tblName) throws AnalysisException {
- Database db = globalState.catalog.getDbOrAnalysisException(tblName.getDb());
+ public TableIf getTableOrAnalysisException(TableName tblName) throws AnalysisException {
+ DatabaseIf db = globalState.catalog.getCurrentDataSource().getDbOrAnalysisException(tblName.getDb());
return db.getTableOrAnalysisException(tblName.getTbl());
}
@@ -760,7 +761,7 @@ public class Analyzer {
* The inner subquery: select k1 from table c where a.k1=k1;
* There is a associated column (a.k1) which belongs to the outer query appears in the inner subquery.
* This column could not be resolved because doris can only resolved the parent column instead of grandpa.
- * The exception of this query like that: Unknown column 'k1' in 'a'
+ * The exception to this query like that: Unknown column 'k1' in 'a'
*/
if (d == null && hasAncestors() && isSubquery) {
// analyzer father for subquery
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/BaseTableRef.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/BaseTableRef.java
index 39f722a92a..bd7458718a 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/BaseTableRef.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/BaseTableRef.java
@@ -17,7 +17,7 @@
package org.apache.doris.analysis;
-import org.apache.doris.catalog.Table;
+import org.apache.doris.catalog.TableIf;
import org.apache.doris.common.UserException;
import org.apache.logging.log4j.LogManager;
@@ -30,9 +30,9 @@ import org.apache.logging.log4j.Logger;
public class BaseTableRef extends TableRef {
private static final Logger LOG = LogManager.getLogger(BaseTableRef.class);
- private Table table;
+ private TableIf table;
- public BaseTableRef(TableRef ref, Table table, TableName tableName) {
+ public BaseTableRef(TableRef ref, TableIf table, TableName tableName) {
super(ref);
this.table = table;
this.name = tableName;
@@ -40,7 +40,7 @@ public class BaseTableRef extends TableRef {
if (hasExplicitAlias()) {
return;
}
- aliases = new String[] { name.toString(), tableName.getNoClusterString(), tableName.getTbl() };
+ aliases = new String[] {name.toString(), tableName.getNoClusterString(), tableName.getTbl()};
}
protected BaseTableRef(BaseTableRef other) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateDataSyncJobStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateDataSyncJobStmt.java
index 67159630c3..69c7ea0fa2 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateDataSyncJobStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateDataSyncJobStmt.java
@@ -93,7 +93,7 @@ public class CreateDataSyncJobStmt extends DdlStmt {
for (ChannelDescription channelDescription : channelDescriptions) {
channelDescription.analyze(dbName);
String tableName = channelDescription.getTargetTable();
- Database db = Catalog.getCurrentCatalog().getDbOrAnalysisException(dbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrAnalysisException(dbName);
OlapTable olapTable = db.getOlapTableOrAnalysisException(tableName);
if (olapTable.getKeysType() != KeysType.UNIQUE_KEYS) {
throw new AnalysisException("Table: " + tableName
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateRoutineLoadStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateRoutineLoadStmt.java
index a55d61d945..e7a9269cb1 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateRoutineLoadStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateRoutineLoadStmt.java
@@ -330,7 +330,7 @@ public class CreateRoutineLoadStmt extends DdlStmt {
if (Strings.isNullOrEmpty(tableName)) {
throw new AnalysisException("Table name should not be null");
}
- Database db = Catalog.getCurrentCatalog().getDbOrAnalysisException(dbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrAnalysisException(dbName);
Table table = db.getTableOrAnalysisException(tableName);
if (mergeType != LoadTask.MergeType.APPEND
&& (table.getType() != Table.TableType.OLAP
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/DataDescription.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/DataDescription.java
index 86d7722305..01cf141c71 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DataDescription.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DataDescription.java
@@ -713,7 +713,7 @@ public class DataDescription {
}
private void analyzeSequenceCol(String fullDbName) throws AnalysisException {
- Database db = Catalog.getCurrentCatalog().getDbOrAnalysisException(fullDbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrAnalysisException(fullDbName);
OlapTable olapTable = db.getOlapTableOrAnalysisException(tableName);
// no sequence column in load and table schema
if (!hasSequenceCol() && !olapTable.hasSequenceCol()) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/DescribeStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/DescribeStmt.java
index 257ea98c83..b9908b44cb 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DescribeStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DescribeStmt.java
@@ -108,7 +108,7 @@ public class DescribeStmt extends ShowStmt {
dbTableName.getDb() + ": " + dbTableName.getTbl());
}
- Database db = Catalog.getCurrentCatalog().getDbOrAnalysisException(dbTableName.getDb());
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrAnalysisException(dbTableName.getDb());
Table table = db.getTableOrAnalysisException(dbTableName.getTbl());
table.readLock();
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/EncryptKeyRef.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/EncryptKeyRef.java
index 9da397cb9d..9cd76a5e34 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/EncryptKeyRef.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/EncryptKeyRef.java
@@ -60,7 +60,7 @@ public class EncryptKeyRef extends Expr {
ErrorReport.reportAnalysisException(ErrorCode.ERR_NO_DB_ERROR);
} else {
dbName = ClusterNamespace.getFullName(analyzer.getClusterName(), dbName);
- Database database = analyzer.getCatalog().getDbOrAnalysisException(dbName);
+ Database database = analyzer.getCatalog().getInternalDataSource().getDbOrAnalysisException(dbName);
EncryptKey encryptKey = database.getEncryptKey(encryptKeyName.getKeyName());
if (encryptKey != null) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/ExportStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/ExportStmt.java
index b8f2c2c9be..a045512155 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/ExportStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/ExportStmt.java
@@ -190,7 +190,7 @@ public class ExportStmt extends StatementBase {
}
private void checkTable(Catalog catalog) throws AnalysisException {
- Database db = catalog.getDbOrAnalysisException(tblName.getDb());
+ Database db = catalog.getInternalDataSource().getDbOrAnalysisException(tblName.getDb());
Table table = db.getTableOrAnalysisException(tblName.getTbl());
table.readLock();
try {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/FromClause.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/FromClause.java
index dfb247a7c4..dfd40a1718 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/FromClause.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/FromClause.java
@@ -87,7 +87,7 @@ public class FromClause implements ParseNode, Iterable<TableRef> {
ErrorReport.reportAnalysisException(ErrorCode.ERR_NO_DB_ERROR);
}
- Database db = analyzer.getCatalog().getDbOrAnalysisException(dbName);
+ Database db = analyzer.getCatalog().getInternalDataSource().getDbOrAnalysisException(dbName);
String tblName = tableName.getTbl();
db.getTableOrAnalysisException(tblName);
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionCallExpr.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionCallExpr.java
index 26f55a321f..03c4cbe6af 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionCallExpr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionCallExpr.java
@@ -25,6 +25,7 @@ import org.apache.doris.catalog.AliasFunction;
import org.apache.doris.catalog.ArrayType;
import org.apache.doris.catalog.Catalog;
import org.apache.doris.catalog.Database;
+import org.apache.doris.catalog.DatabaseIf;
import org.apache.doris.catalog.Function;
import org.apache.doris.catalog.FunctionSet;
import org.apache.doris.catalog.ScalarFunction;
@@ -931,15 +932,16 @@ public class FunctionCallExpr extends Expr {
String dbName = fnName.analyzeDb(analyzer);
if (!Strings.isNullOrEmpty(dbName)) {
// check operation privilege
- if (!Catalog.getCurrentCatalog().getAuth().checkDbPriv(
- ConnectContext.get(), dbName, PrivPredicate.SELECT)) {
+ if (!Catalog.getCurrentCatalog().getAuth()
+ .checkDbPriv(ConnectContext.get(), dbName, PrivPredicate.SELECT)) {
ErrorReport.reportAnalysisException(ErrorCode.ERR_SPECIFIC_ACCESS_DENIED_ERROR, "SELECT");
}
- Database db = Catalog.getCurrentCatalog().getDbNullable(dbName);
- if (db != null) {
- Function searchDesc = new Function(
- fnName, Arrays.asList(collectChildReturnTypes()), Type.INVALID, false);
- fn = db.getFunction(searchDesc, Function.CompareMode.IS_NONSTRICT_SUPERTYPE_OF);
+ DatabaseIf db = Catalog.getCurrentCatalog().getCurrentDataSource().getDbNullable(dbName);
+ if (db != null && (db instanceof Database)) {
+ Function searchDesc =
+ new Function(fnName, Arrays.asList(collectChildReturnTypes()), Type.INVALID, false);
+ fn = ((Database) db).getFunction(searchDesc,
+ Function.CompareMode.IS_NONSTRICT_SUPERTYPE_OF);
}
}
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/InsertStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/InsertStmt.java
index 62a8a9887e..f3b29b6398 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/InsertStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/InsertStmt.java
@@ -22,12 +22,14 @@ import org.apache.doris.catalog.BrokerTable;
import org.apache.doris.catalog.Catalog;
import org.apache.doris.catalog.Column;
import org.apache.doris.catalog.Database;
+import org.apache.doris.catalog.DatabaseIf;
import org.apache.doris.catalog.MysqlTable;
import org.apache.doris.catalog.OdbcTable;
import org.apache.doris.catalog.OlapTable;
import org.apache.doris.catalog.Partition;
import org.apache.doris.catalog.PartitionType;
import org.apache.doris.catalog.Table;
+import org.apache.doris.catalog.TableIf;
import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.DdlException;
import org.apache.doris.common.ErrorCode;
@@ -188,7 +190,7 @@ public class InsertStmt extends DdlStmt {
return tblName.getTbl();
}
- public void getTables(Analyzer analyzer, Map<Long, Table> tableMap, Set<String> parentViewNameSet)
+ public void getTables(Analyzer analyzer, Map<Long, TableIf> tableMap, Set<String> parentViewNameSet)
throws AnalysisException {
// get dbs of statement
queryStmt.getTables(analyzer, tableMap, parentViewNameSet);
@@ -196,15 +198,15 @@ public class InsertStmt extends DdlStmt {
String dbName = tblName.getDb();
String tableName = tblName.getTbl();
// check exist
- Database db = analyzer.getCatalog().getDbOrAnalysisException(dbName);
- Table table = db.getTableOrAnalysisException(tblName.getTbl());
+ DatabaseIf db = analyzer.getCatalog().getInternalDataSource().getDbOrAnalysisException(dbName);
+ TableIf table = db.getTableOrAnalysisException(tblName.getTbl());
// check access
- if (!Catalog.getCurrentCatalog().getAuth().checkTblPriv(ConnectContext.get(), dbName, tableName,
- PrivPredicate.LOAD)) {
+ if (!Catalog.getCurrentCatalog().getAuth()
+ .checkTblPriv(ConnectContext.get(), dbName, tableName, PrivPredicate.LOAD)) {
ErrorReport.reportAnalysisException(ErrorCode.ERR_TABLEACCESS_DENIED_ERROR, "LOAD",
- ConnectContext.get().getQualifiedUser(),
- ConnectContext.get().getRemoteIP(), dbName + ": " + tableName);
+ ConnectContext.get().getQualifiedUser(), ConnectContext.get().getRemoteIP(),
+ dbName + ": " + tableName);
}
tableMap.put(table.getId(), table);
@@ -294,7 +296,7 @@ public class InsertStmt extends DdlStmt {
// create data sink
createDataSink();
- db = analyzer.getCatalog().getDbOrAnalysisException(tblName.getDb());
+ db = analyzer.getCatalog().getInternalDataSource().getDbOrAnalysisException(tblName.getDb());
// create label and begin transaction
long timeoutSecond = ConnectContext.get().getSessionVariable().getQueryTimeoutS();
@@ -325,7 +327,8 @@ public class InsertStmt extends DdlStmt {
private void analyzeTargetTable(Analyzer analyzer) throws AnalysisException {
// Get table
if (targetTable == null) {
- targetTable = analyzer.getTableOrAnalysisException(tblName);
+ DatabaseIf db = Catalog.getCurrentInternalCatalog().getDbOrAnalysisException(tblName.getDb());
+ targetTable = (Table) db.getTableOrAnalysisException(tblName.getTbl());
}
if (targetTable instanceof OlapTable) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/LoadStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/LoadStmt.java
index 469f4d4523..e5e4940b2e 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/LoadStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/LoadStmt.java
@@ -335,7 +335,7 @@ public class LoadStmt extends DdlStmt {
if (dataDescription.isLoadFromTable()) {
isLoadFromTable = true;
}
- Database db = Catalog.getCurrentCatalog().getDbOrAnalysisException(label.getDbName());
+ Database db = analyzer.getCatalog().getInternalDataSource().getDbOrAnalysisException(label.getDbName());
OlapTable table = db.getOlapTableOrAnalysisException(dataDescription.getTableName());
if (dataDescription.getMergeType() != LoadTask.MergeType.APPEND
&& table.getKeysType() != KeysType.UNIQUE_KEYS) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/LockTablesStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/LockTablesStmt.java
index 924187ba90..1123af3839 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/LockTablesStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/LockTablesStmt.java
@@ -59,7 +59,7 @@ public class LockTablesStmt extends StatementBase {
if (Strings.isNullOrEmpty(tableName)) {
ErrorReport.reportAnalysisException(ErrorCode.ERR_UNKNOWN_TABLE, tableName, dbName);
}
- Database db = analyzer.getCatalog().getDbOrAnalysisException(dbName);
+ Database db = analyzer.getCatalog().getInternalDataSource().getDbOrAnalysisException(dbName);
db.getTableOrAnalysisException(tableName);
// check auth
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/QueryStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/QueryStmt.java
index a32b93ac3c..d11f27d100 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/QueryStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/QueryStmt.java
@@ -20,7 +20,7 @@
package org.apache.doris.analysis;
-import org.apache.doris.catalog.Table;
+import org.apache.doris.catalog.TableIf;
import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.ErrorCode;
import org.apache.doris.common.ErrorReport;
@@ -455,8 +455,8 @@ public abstract class QueryStmt extends StatementBase {
return resultExprs.get((int) pos - 1).clone();
}
- public void getWithClauseTables(Analyzer analyzer, Map<Long, Table> tableMap,
- Set<String> parentViewNameSet) throws AnalysisException {
+ public void getWithClauseTables(Analyzer analyzer, Map<Long, TableIf> tableMap, Set<String> parentViewNameSet)
+ throws AnalysisException {
if (withClause != null) {
withClause.getTables(analyzer, tableMap, parentViewNameSet);
}
@@ -535,7 +535,7 @@ public abstract class QueryStmt extends StatementBase {
// tmp in child stmt "(select siteid, citycode from tmp)" do not contain with_Clause
// so need to check is view name by parentViewNameSet.
// issue link: https://github.com/apache/doris/issues/4598
- public abstract void getTables(Analyzer analyzer, Map<Long, Table> tables, Set<String> parentViewNameSet)
+ public abstract void getTables(Analyzer analyzer, Map<Long, TableIf> tables, Set<String> parentViewNameSet)
throws AnalysisException;
// get TableRefs in this query, including physical TableRefs of this statement and
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/SelectStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/SelectStmt.java
index de397d8a28..d6f413e89e 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/SelectStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/SelectStmt.java
@@ -23,10 +23,10 @@ package org.apache.doris.analysis;
import org.apache.doris.catalog.AggregateFunction;
import org.apache.doris.catalog.Catalog;
import org.apache.doris.catalog.Column;
-import org.apache.doris.catalog.Database;
+import org.apache.doris.catalog.DatabaseIf;
import org.apache.doris.catalog.FunctionSet;
import org.apache.doris.catalog.OlapTable;
-import org.apache.doris.catalog.Table;
+import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.TableIf.TableType;
import org.apache.doris.catalog.Type;
import org.apache.doris.catalog.View;
@@ -290,8 +290,8 @@ public class SelectStmt extends QueryStmt {
}
@Override
- public void getTables(Analyzer analyzer, Map<Long, Table> tableMap,
- Set<String> parentViewNameSet) throws AnalysisException {
+ public void getTables(Analyzer analyzer, Map<Long, TableIf> tableMap, Set<String> parentViewNameSet)
+ throws AnalysisException {
getWithClauseTables(analyzer, tableMap, parentViewNameSet);
for (TableRef tblRef : fromClause) {
if (tblRef instanceof InlineViewRef) {
@@ -315,16 +315,14 @@ public class SelectStmt extends QueryStmt {
if (Strings.isNullOrEmpty(tableName)) {
ErrorReport.reportAnalysisException(ErrorCode.ERR_UNKNOWN_TABLE, tableName, dbName);
}
- Database db = analyzer.getCatalog().getDbOrAnalysisException(dbName);
- Table table = db.getTableOrAnalysisException(tableName);
+ DatabaseIf db = analyzer.getCatalog().getCurrentDataSource().getDbOrAnalysisException(dbName);
+ TableIf table = db.getTableOrAnalysisException(tableName);
// check auth
- if (!Catalog.getCurrentCatalog().getAuth().checkTblPriv(ConnectContext.get(), dbName,
- tableName,
- PrivPredicate.SELECT)) {
+ if (!Catalog.getCurrentCatalog().getAuth()
+ .checkTblPriv(ConnectContext.get(), dbName, tableName, PrivPredicate.SELECT)) {
ErrorReport.reportAnalysisException(ErrorCode.ERR_TABLEACCESS_DENIED_ERROR, "SELECT",
- ConnectContext.get().getQualifiedUser(),
- ConnectContext.get().getRemoteIP(),
+ ConnectContext.get().getQualifiedUser(), ConnectContext.get().getRemoteIP(),
dbName + ": " + tableName);
}
tableMap.put(table.getId(), table);
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/SetOperationStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/SetOperationStmt.java
index 21968fd19c..9816c30bb2 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/SetOperationStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/SetOperationStmt.java
@@ -17,7 +17,7 @@
package org.apache.doris.analysis;
-import org.apache.doris.catalog.Table;
+import org.apache.doris.catalog.TableIf;
import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.UserException;
import org.apache.doris.rewrite.ExprRewriter;
@@ -213,7 +213,7 @@ public class SetOperationStmt extends QueryStmt {
}
@Override
- public void getTables(Analyzer analyzer, Map<Long, Table> tableMap, Set<String> parentViewNameSet)
+ public void getTables(Analyzer analyzer, Map<Long, TableIf> tableMap, Set<String> parentViewNameSet)
throws AnalysisException {
getWithClauseTables(analyzer, tableMap, parentViewNameSet);
for (SetOperand op : operands) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowAlterStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowAlterStmt.java
index 1b4dc7f4ac..4bcb72d9d8 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowAlterStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowAlterStmt.java
@@ -18,7 +18,7 @@
package org.apache.doris.analysis;
import org.apache.doris.catalog.Column;
-import org.apache.doris.catalog.Database;
+import org.apache.doris.catalog.DatabaseIf;
import org.apache.doris.catalog.ScalarType;
import org.apache.doris.catalog.Type;
import org.apache.doris.cluster.ClusterNamespace;
@@ -189,9 +189,8 @@ public class ShowAlterStmt extends ShowStmt {
}
}
-
public void handleShowAlterTable(Analyzer analyzer) throws UserException {
- Database db = analyzer.getCatalog().getDbOrAnalysisException(dbName);
+ DatabaseIf db = analyzer.getCatalog().getInternalDataSource().getDbOrAnalysisException(dbName);
// build proc path
StringBuilder sb = new StringBuilder();
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowDataStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowDataStmt.java
index abfce939f3..dd6a2f02d0 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowDataStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowDataStmt.java
@@ -105,7 +105,7 @@ public class ShowDataStmt extends ShowStmt {
dbName = ClusterNamespace.getFullName(getClusterName(), dbName);
}
- Database db = Catalog.getCurrentCatalog().getDbOrAnalysisException(dbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrAnalysisException(dbName);
// order by
if (orderByElements != null && !orderByElements.isEmpty()) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowPartitionsStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowPartitionsStmt.java
index 7b2bf92fa8..07a418a58e 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowPartitionsStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowPartitionsStmt.java
@@ -108,7 +108,7 @@ public class ShowPartitionsStmt extends ShowStmt {
ConnectContext.get().getRemoteIP(),
dbName + ": " + tableName);
}
- Database db = Catalog.getCurrentCatalog().getDbOrAnalysisException(dbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrAnalysisException(dbName);
Table table = db.getTableOrMetaException(tableName, Table.TableType.OLAP);
table.readLock();
try {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowViewStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowViewStmt.java
index 9c7ea82381..14c677c90a 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowViewStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowViewStmt.java
@@ -97,7 +97,7 @@ public class ShowViewStmt extends ShowStmt {
dbName + ": " + getTbl());
}
- Database database = Catalog.getCurrentCatalog().getDbOrAnalysisException(dbName);
+ Database database = Catalog.getCurrentInternalCatalog().getDbOrAnalysisException(dbName);
database.getOlapTableOrAnalysisException(tbl.getTbl());
for (Table table : database.getViews()) {
View view = (View) table;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/StmtRewriter.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/StmtRewriter.java
index 66c864fb57..0bb58a4778 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/StmtRewriter.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/StmtRewriter.java
@@ -1191,7 +1191,7 @@ public class StmtRewriter {
if (dbName == null) {
dbName = analyzer.getDefaultDb();
}
- Database db = currentCatalog.getDbOrAnalysisException(dbName);
+ Database db = currentCatalog.getInternalDataSource().getDbOrAnalysisException(dbName);
long dbId = db.getId();
long tableId = table.getId();
RowPolicy matchPolicy = currentCatalog.getPolicyMgr().getMatchTablePolicy(dbId, tableId, user);
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/UpdateStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/UpdateStmt.java
index f19f73dda5..e86a76b215 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/UpdateStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/UpdateStmt.java
@@ -103,7 +103,7 @@ public class UpdateStmt extends DdlStmt {
String targetTableName = tableName.getTbl();
Preconditions.checkNotNull(dbName);
Preconditions.checkNotNull(targetTableName);
- Database database = Catalog.getCurrentCatalog().getDbOrAnalysisException(dbName);
+ Database database = Catalog.getCurrentInternalCatalog().getDbOrAnalysisException(dbName);
targetTable = database.getTableOrAnalysisException(tableName.getTbl());
if (targetTable.getType() != Table.TableType.OLAP
|| ((OlapTable) targetTable).getKeysType() != KeysType.UNIQUE_KEYS) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/WithClause.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/WithClause.java
index 98979fc028..e9e1e57d10 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/WithClause.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/WithClause.java
@@ -20,7 +20,7 @@
package org.apache.doris.analysis;
-import org.apache.doris.catalog.Table;
+import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.View;
import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.UserException;
@@ -113,8 +113,8 @@ public class WithClause implements ParseNode {
}
}
- public void getTables(Analyzer analyzer, Map<Long, Table> tableMap,
- Set<String> parentViewNameSet) throws AnalysisException {
+ public void getTables(Analyzer analyzer, Map<Long, TableIf> tableMap, Set<String> parentViewNameSet)
+ throws AnalysisException {
for (View view : views) {
QueryStmt stmt = view.getQueryStmt();
parentViewNameSet.add(view.getName());
diff --git a/fe/fe-core/src/main/java/org/apache/doris/backup/BackupHandler.java b/fe/fe-core/src/main/java/org/apache/doris/backup/BackupHandler.java
index c529259fbc..28704a7bdd 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/backup/BackupHandler.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/backup/BackupHandler.java
@@ -245,7 +245,7 @@ public class BackupHandler extends MasterDaemon implements Writable {
// check if db exist
String dbName = stmt.getDbName();
- Database db = catalog.getDbOrDdlException(dbName);
+ Database db = catalog.getInternalDataSource().getDbOrDdlException(dbName);
// Try to get sequence lock.
// We expect at most one operation on a repo at same time.
@@ -540,7 +540,7 @@ public class BackupHandler extends MasterDaemon implements Writable {
public void cancel(CancelBackupStmt stmt) throws DdlException {
String dbName = stmt.getDbName();
- Database db = catalog.getDbOrDdlException(dbName);
+ Database db = catalog.getInternalDataSource().getDbOrDdlException(dbName);
AbstractJob job = getCurrentJob(db.getId());
if (job == null || (job instanceof BackupJob && stmt.isRestore())
diff --git a/fe/fe-core/src/main/java/org/apache/doris/backup/BackupJob.java b/fe/fe-core/src/main/java/org/apache/doris/backup/BackupJob.java
index da07f64342..5cc6c0aba4 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/backup/BackupJob.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/backup/BackupJob.java
@@ -345,7 +345,7 @@ public class BackupJob extends AbstractJob {
}
private void prepareAndSendSnapshotTask() {
- Database db = catalog.getDbNullable(dbId);
+ Database db = catalog.getInternalDataSource().getDbNullable(dbId);
if (db == null) {
status = new Status(ErrCode.NOT_FOUND, "database " + dbId + " does not exist");
return;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/backup/RestoreJob.java b/fe/fe-core/src/main/java/org/apache/doris/backup/RestoreJob.java
index 78148acc1f..dbdc3ad575 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/backup/RestoreJob.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/backup/RestoreJob.java
@@ -363,7 +363,7 @@ public class RestoreJob extends AbstractJob {
return;
}
- Database db = catalog.getDbNullable(dbId);
+ Database db = catalog.getInternalDataSource().getDbNullable(dbId);
if (db == null) {
status = new Status(ErrCode.NOT_FOUND, "database " + dbId + " has been dropped");
return;
@@ -418,7 +418,7 @@ public class RestoreJob extends AbstractJob {
* 6. make snapshot for all replicas for incremental download later.
*/
private void checkAndPrepareMeta() {
- Database db = catalog.getDbNullable(dbId);
+ Database db = catalog.getInternalDataSource().getDbNullable(dbId);
if (db == null) {
status = new Status(ErrCode.NOT_FOUND, "database " + dbId + " does not exist");
return;
@@ -1086,7 +1086,7 @@ public class RestoreJob extends AbstractJob {
private void replayCheckAndPrepareMeta() {
Database db;
try {
- db = catalog.getDbOrMetaException(dbId);
+ db = catalog.getInternalDataSource().getDbOrMetaException(dbId);
} catch (MetaNotFoundException e) {
LOG.warn("[INCONSISTENT META] replayCheckAndPrepareMeta failed", e);
return;
@@ -1222,7 +1222,7 @@ public class RestoreJob extends AbstractJob {
for (long dbId : dbToSnapshotInfos.keySet()) {
List<SnapshotInfo> infos = dbToSnapshotInfos.get(dbId);
- Database db = catalog.getDbNullable(dbId);
+ Database db = catalog.getInternalDataSource().getDbNullable(dbId);
if (db == null) {
status = new Status(ErrCode.NOT_FOUND, "db " + dbId + " does not exist");
return;
@@ -1417,7 +1417,7 @@ public class RestoreJob extends AbstractJob {
}
private Status allTabletCommitted(boolean isReplay) {
- Database db = catalog.getDbNullable(dbId);
+ Database db = catalog.getInternalDataSource().getDbNullable(dbId);
if (db == null) {
return new Status(ErrCode.NOT_FOUND, "database " + dbId + " does not exist");
}
@@ -1587,7 +1587,7 @@ public class RestoreJob extends AbstractJob {
}
// clean restored objs
- Database db = catalog.getDbNullable(dbId);
+ Database db = catalog.getInternalDataSource().getDbNullable(dbId);
if (db != null) {
// rollback table's state to NORMAL
setTableStateToNormal(db);
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Catalog.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/Catalog.java
index 4b8c6a14da..0095d6b11f 100755
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Catalog.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Catalog.java
@@ -115,6 +115,7 @@ import org.apache.doris.common.util.SmallFileMgr;
import org.apache.doris.common.util.TimeUtils;
import org.apache.doris.common.util.Util;
import org.apache.doris.consistency.ConsistencyChecker;
+import org.apache.doris.datasource.DataSourceIf;
import org.apache.doris.datasource.DataSourceMgr;
import org.apache.doris.datasource.InternalDataSource;
import org.apache.doris.deploy.DeployManager;
@@ -249,7 +250,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
-import java.util.Optional;
import java.util.Set;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ConcurrentHashMap;
@@ -258,7 +258,6 @@ import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicLong;
import java.util.stream.Collectors;
-import javax.annotation.Nullable;
public class Catalog {
private static final Logger LOG = LogManager.getLogger(Catalog.class);
@@ -478,10 +477,20 @@ public class Catalog {
return dataSourceMgr;
}
+ public DataSourceIf getCurrentDataSource() {
+ // TODO: this should be got from connect context.
+ // Will be fixed later.
+ return dataSourceMgr.getInternalDataSource();
+ }
+
public InternalDataSource getInternalDataSource() {
return dataSourceMgr.getInternalDataSource();
}
+ public static InternalDataSource getCurrentInternalCatalog() {
+ return getCurrentCatalog().getInternalDataSource();
+ }
+
private static class SingletonHolder {
private static final Catalog INSTANCE = new Catalog();
}
@@ -2647,10 +2656,10 @@ public class Catalog {
getInternalDataSource().replayRecoverPartition(info);
}
- public static void getDdlStmt(Table table, List<String> createTableStmt, List<String> addPartitionStmt,
- List<String> createRollupStmt, boolean separatePartition, boolean hidePassword) {
- getDdlStmt(null, null, table, createTableStmt, addPartitionStmt, createRollupStmt,
- separatePartition, hidePassword, false);
+ public static void getDdlStmt(TableIf table, List<String> createTableStmt, List<String> addPartitionStmt,
+ List<String> createRollupStmt, boolean separatePartition, boolean hidePassword) {
+ getDdlStmt(null, null, table, createTableStmt, addPartitionStmt, createRollupStmt, separatePartition,
+ hidePassword, false);
}
/**
@@ -2658,9 +2667,9 @@ public class Catalog {
*
* @param getDdlForLike Get schema for 'create table like' or not. when true, without hidden columns.
*/
- public static void getDdlStmt(DdlStmt ddlStmt, String dbName, Table table, List<String> createTableStmt,
- List<String> addPartitionStmt, List<String> createRollupStmt,
- boolean separatePartition, boolean hidePassword, boolean getDdlForLike) {
+ public static void getDdlStmt(DdlStmt ddlStmt, String dbName, TableIf table, List<String> createTableStmt,
+ List<String> addPartitionStmt, List<String> createRollupStmt, boolean separatePartition,
+ boolean hidePassword, boolean getDdlForLike) {
StringBuilder sb = new StringBuilder();
// 1. create table
@@ -3160,71 +3169,6 @@ public class Catalog {
return token;
}
- @Nullable
- public Database getDbNullable(String dbName) {
- return (Database) getInternalDataSource().getDbNullable(dbName);
- }
-
- @Nullable
- public Database getDbNullable(long dbId) {
- return (Database) getInternalDataSource().getDbNullable(dbId);
- }
-
- public Optional<Database> getDb(String dbName) {
- return Optional.ofNullable(getDbNullable(dbName));
- }
-
- public Optional<Database> getDb(long dbId) {
- return Optional.ofNullable(getDbNullable(dbId));
- }
-
- public <E extends Exception> Database getDbOrException(
- String dbName, java.util.function.Function<String, E> e) throws E {
- Database db = getDbNullable(dbName);
- if (db == null) {
- throw e.apply(dbName);
- }
- return db;
- }
-
- public <E extends Exception> Database getDbOrException(long dbId, java.util.function.Function<Long, E> e) throws E {
- Database db = getDbNullable(dbId);
- if (db == null) {
- throw e.apply(dbId);
- }
- return db;
- }
-
- public Database getDbOrMetaException(String dbName) throws MetaNotFoundException {
- return getDbOrException(dbName,
- s -> new MetaNotFoundException("unknown databases, dbName=" + s, ErrorCode.ERR_BAD_DB_ERROR));
- }
-
- public Database getDbOrMetaException(long dbId) throws MetaNotFoundException {
- return getDbOrException(dbId,
- s -> new MetaNotFoundException("unknown databases, dbId=" + s, ErrorCode.ERR_BAD_DB_ERROR));
- }
-
- public Database getDbOrDdlException(String dbName) throws DdlException {
- return getDbOrException(dbName,
- s -> new DdlException(ErrorCode.ERR_BAD_DB_ERROR.formatErrorMsg(s), ErrorCode.ERR_BAD_DB_ERROR));
- }
-
- public Database getDbOrDdlException(long dbId) throws DdlException {
- return getDbOrException(dbId,
- s -> new DdlException(ErrorCode.ERR_BAD_DB_ERROR.formatErrorMsg(s), ErrorCode.ERR_BAD_DB_ERROR));
- }
-
- public Database getDbOrAnalysisException(String dbName) throws AnalysisException {
- return getDbOrException(dbName,
- s -> new AnalysisException(ErrorCode.ERR_BAD_DB_ERROR.formatErrorMsg(s), ErrorCode.ERR_BAD_DB_ERROR));
- }
-
- public Database getDbOrAnalysisException(long dbId) throws AnalysisException {
- return getDbOrException(dbId,
- s -> new AnalysisException(ErrorCode.ERR_BAD_DB_ERROR.formatErrorMsg(s), ErrorCode.ERR_BAD_DB_ERROR));
- }
-
public EditLog getEditLog() {
return editLog;
}
@@ -3234,18 +3178,6 @@ public class Catalog {
return idGenerator.getNextId();
}
- public List<String> getDbNames() {
- return getInternalDataSource().getDbNames();
- }
-
- public List<String> getClusterDbNames(String clusterName) throws AnalysisException {
- return getInternalDataSource().getClusterDbNames(clusterName);
- }
-
- public List<Long> getDbIds() {
- return getInternalDataSource().getDbIds();
- }
-
public HashMap<Long, TStorageMedium> getPartitionIdToStorageMediumMap() {
HashMap<Long, TStorageMedium> storageMediumMap = new HashMap<Long, TStorageMedium>();
@@ -3253,10 +3185,10 @@ public class Catalog {
// dbId -> (tableId -> partitionId)
HashMap<Long, Multimap<Long, Long>> changedPartitionsMap = new HashMap<Long, Multimap<Long, Long>>();
long currentTimeMs = System.currentTimeMillis();
- List<Long> dbIds = getDbIds();
+ List<Long> dbIds = getInternalDataSource().getDbIds();
for (long dbId : dbIds) {
- Database db = this.getDbNullable(dbId);
+ Database db = getInternalDataSource().getDbNullable(dbId);
if (db == null) {
LOG.warn("db {} does not exist while doing backend report", dbId);
continue;
@@ -3299,7 +3231,7 @@ public class Catalog {
// handle data property changed
for (Long dbId : changedPartitionsMap.keySet()) {
- Database db = getDbNullable(dbId);
+ Database db = getInternalDataSource().getDbNullable(dbId);
if (db == null) {
LOG.warn("db {} does not exist while checking backend storage medium", dbId);
continue;
@@ -3307,7 +3239,7 @@ public class Catalog {
Multimap<Long, Long> tableIdToPartitionIds = changedPartitionsMap.get(dbId);
for (Long tableId : tableIdToPartitionIds.keySet()) {
- Table table = db.getTableNullable(tableId);
+ TableIf table = db.getTableNullable(tableId);
if (table == null) {
continue;
}
@@ -3731,7 +3663,7 @@ public class Catalog {
long tableId = tableInfo.getTableId();
String newTableName = tableInfo.getNewTableName();
- Database db = this.getDbOrMetaException(dbId);
+ Database db = getInternalDataSource().getDbOrMetaException(dbId);
db.writeLock();
try {
Table table = db.getTableOrMetaException(tableId);
@@ -3845,7 +3777,7 @@ public class Catalog {
long tableId = info.getTableId();
Map<String, String> properties = info.getPropertyMap();
- Database db = this.getDbOrMetaException(dbId);
+ Database db = getInternalDataSource().getDbOrMetaException(dbId);
OlapTable olapTable = (OlapTable) db.getTableOrMetaException(tableId, TableType.OLAP);
olapTable.writeLock();
try {
@@ -3905,7 +3837,7 @@ public class Catalog {
long indexId = tableInfo.getIndexId();
String newRollupName = tableInfo.getNewRollupName();
- Database db = this.getDbOrMetaException(dbId);
+ Database db = getInternalDataSource().getDbOrMetaException(dbId);
OlapTable olapTable = (OlapTable) db.getTableOrMetaException(tableId, TableType.OLAP);
olapTable.writeLock();
try {
@@ -3967,7 +3899,7 @@ public class Catalog {
long partitionId = tableInfo.getPartitionId();
String newPartitionName = tableInfo.getNewPartitionName();
- Database db = this.getDbOrMetaException(dbId);
+ Database db = getInternalDataSource().getDbOrMetaException(dbId);
OlapTable olapTable = (OlapTable) db.getTableOrMetaException(tableId, TableType.OLAP);
olapTable.writeLock();
try {
@@ -4114,7 +4046,7 @@ public class Catalog {
long tableId = info.getTableId();
Map<String, String> properties = info.getProperties();
- Database db = this.getDbOrMetaException(dbId);
+ Database db = getInternalDataSource().getDbOrMetaException(dbId);
OlapTable olapTable = (OlapTable) db.getTableOrMetaException(tableId, TableType.OLAP);
olapTable.writeLock();
try {
@@ -4195,7 +4127,7 @@ public class Catalog {
long tableId = info.getTableId();
int bucketNum = info.getBucketNum();
- Database db = this.getDbOrMetaException(dbId);
+ Database db = getInternalDataSource().getDbOrMetaException(dbId);
OlapTable olapTable = (OlapTable) db.getTableOrMetaException(tableId, TableType.OLAP);
olapTable.writeLock();
try {
@@ -4233,7 +4165,7 @@ public class Catalog {
ErrorReport.reportDdlException(ErrorCode.ERR_DBACCESS_DENIED_ERROR, ctx.getQualifiedUser(), qualifiedDb);
}
- this.getDbOrDdlException(qualifiedDb);
+ getInternalDataSource().getDbOrDdlException(qualifiedDb);
ctx.setDatabase(qualifiedDb);
}
@@ -4252,7 +4184,7 @@ public class Catalog {
String tableName = stmt.getTable();
// check if db exists
- Database db = this.getDbOrDdlException(dbName);
+ Database db = getInternalDataSource().getDbOrDdlException(dbName);
// check if table exists in db
if (db.getTable(tableName).isPresent()) {
@@ -4278,7 +4210,7 @@ public class Catalog {
throw new DdlException("failed to init view stmt", e);
}
- if (!db.createTableWithLock(newView, false, stmt.isSetIfNotExists()).first) {
+ if (!((Database) db).createTableWithLock(newView, false, stmt.isSetIfNotExists()).first) {
throw new DdlException("Failed to create view[" + tableName + "].");
}
LOG.info("successfully create view[" + tableName + "-" + newView.getId() + "]");
@@ -4476,23 +4408,23 @@ public class Catalog {
public String dumpImage() {
LOG.info("begin to dump meta data");
String dumpFilePath;
- List<Database> databases = Lists.newArrayList();
- List<List<Table>> tableLists = Lists.newArrayList();
+ List<DatabaseIf> databases = Lists.newArrayList();
+ List<List<TableIf>> tableLists = Lists.newArrayList();
tryLock(true);
try {
// sort all dbs to avoid potential dead lock
- for (long dbId : getDbIds()) {
- Database db = this.getDbNullable(dbId);
+ for (long dbId : getInternalDataSource().getDbIds()) {
+ Database db = getInternalDataSource().getDbNullable(dbId);
databases.add(db);
}
- databases.sort(Comparator.comparing(Database::getId));
+ databases.sort(Comparator.comparing(DatabaseIf::getId));
// lock all dbs
MetaLockUtils.readLockDatabases(databases);
LOG.info("acquired all the dbs' read lock.");
// lock all tables
- for (Database db : databases) {
- List<Table> tableList = db.getTablesOnIdOrder();
+ for (DatabaseIf db : databases) {
+ List<TableIf> tableList = db.getTablesOnIdOrder();
MetaLockUtils.readLockTables(tableList);
tableLists.add(tableList);
}
@@ -4544,25 +4476,25 @@ public class Catalog {
public void createFunction(CreateFunctionStmt stmt) throws UserException {
FunctionName name = stmt.getFunctionName();
- Database db = this.getDbOrDdlException(name.getDb());
+ Database db = getInternalDataSource().getDbOrDdlException(name.getDb());
db.addFunction(stmt.getFunction());
}
public void replayCreateFunction(Function function) throws MetaNotFoundException {
String dbName = function.getFunctionName().getDb();
- Database db = this.getDbOrMetaException(dbName);
+ Database db = getInternalDataSource().getDbOrMetaException(dbName);
db.replayAddFunction(function);
}
public void dropFunction(DropFunctionStmt stmt) throws UserException {
FunctionName name = stmt.getFunctionName();
- Database db = this.getDbOrDdlException(name.getDb());
+ Database db = getInternalDataSource().getDbOrDdlException(name.getDb());
db.dropFunction(stmt.getFunction());
}
public void replayDropFunction(FunctionSearchDesc functionSearchDesc) throws MetaNotFoundException {
String dbName = functionSearchDesc.getName().getDb();
- Database db = this.getDbOrMetaException(dbName);
+ Database db = getInternalDataSource().getDbOrMetaException(dbName);
db.replayDropFunction(functionSearchDesc);
}
@@ -4630,9 +4562,8 @@ public class Catalog {
// but we need to get replica from db->tbl->partition->...
List<ReplicaPersistInfo> replicaPersistInfos = backendTabletsInfo.getReplicaPersistInfos();
for (ReplicaPersistInfo info : replicaPersistInfos) {
- OlapTable olapTable = (OlapTable) this.getDb(info.getDbId())
- .flatMap(db -> db.getTable(info.getTableId()))
- .filter(t -> t.getType() == TableType.OLAP)
+ OlapTable olapTable = (OlapTable) getInternalDataSource().getDb(info.getDbId())
+ .flatMap(db -> db.getTable(info.getTableId())).filter(t -> t.getType() == TableType.OLAP)
.orElse(null);
if (olapTable == null) {
continue;
@@ -4680,7 +4611,7 @@ public class Catalog {
}
public void replayConvertDistributionType(TableInfo info) throws MetaNotFoundException {
- Database db = this.getDbOrMetaException(info.getDbId());
+ Database db = getInternalDataSource().getDbOrMetaException(info.getDbId());
OlapTable olapTable = (OlapTable) db.getTableOrMetaException(info.getTableId(), TableType.OLAP);
olapTable.writeLock();
try {
@@ -4726,7 +4657,7 @@ public class Catalog {
throws MetaNotFoundException {
long dbId = replaceTempPartitionLog.getDbId();
long tableId = replaceTempPartitionLog.getTblId();
- Database db = this.getDbOrMetaException(dbId);
+ Database db = getInternalDataSource().getDbOrMetaException(dbId);
OlapTable olapTable = (OlapTable) db.getTableOrMetaException(tableId, TableType.OLAP);
olapTable.writeLock();
try {
@@ -4815,7 +4746,7 @@ public class Catalog {
if (meta == null) {
throw new MetaNotFoundException("tablet does not exist");
}
- Database db = this.getDbOrMetaException(meta.getDbId());
+ Database db = getInternalDataSource().getDbOrMetaException(meta.getDbId());
Table table = db.getTableOrMetaException(meta.getTableId());
table.writeLockOrMetaException();
try {
@@ -4939,8 +4870,7 @@ public class Catalog {
String tableName = stmt.getTblName();
String type = stmt.getCompactionType();
-
- Database db = this.getDbOrDdlException(dbName);
+ Database db = getInternalDataSource().getDbOrDdlException(dbName);
OlapTable olapTable = db.getOlapTableOrDdlException(tableName);
AgentBatchTask batchTask = new AgentBatchTask();
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/CatalogRecycleBin.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/CatalogRecycleBin.java
index 15d25ad153..f2656c07cf 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/CatalogRecycleBin.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/CatalogRecycleBin.java
@@ -544,7 +544,7 @@ public class CatalogRecycleBin extends MasterDaemon implements Writable {
// we need to get olap table to get schema hash info
// first find it in catalog. if not found, it should be in recycle bin
OlapTable olapTable = null;
- Database db = Catalog.getCurrentCatalog().getDbNullable(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable(dbId);
if (db == null) {
// just log. db should be in recycle bin
if (!idToDatabase.containsKey(dbId)) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/ColocateTableIndex.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/ColocateTableIndex.java
index b77890b8e7..07847c6c5a 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/ColocateTableIndex.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/ColocateTableIndex.java
@@ -521,7 +521,7 @@ public class ColocateTableIndex implements Writable {
}
public void replayAddTableToGroup(ColocatePersistInfo info) throws MetaNotFoundException {
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException(info.getGroupId().dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(info.getGroupId().dbId);
OlapTable tbl = (OlapTable) db.getTableOrMetaException(info.getTableId(),
org.apache.doris.catalog.Table.TableType.OLAP);
writeLock();
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/EncryptKeyHelper.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/EncryptKeyHelper.java
index 86b89ee412..0c4cecfda2 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/EncryptKeyHelper.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/EncryptKeyHelper.java
@@ -32,25 +32,25 @@ public class EncryptKeyHelper {
public static void createEncryptKey(CreateEncryptKeyStmt stmt) throws UserException {
EncryptKeyName name = stmt.getEncryptKeyName();
- Database db = Catalog.getCurrentCatalog().getDbOrDdlException(name.getDb());
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrDdlException(name.getDb());
db.addEncryptKey(stmt.getEncryptKey());
}
public static void replayCreateEncryptKey(EncryptKey encryptKey) throws MetaNotFoundException {
String dbName = encryptKey.getEncryptKeyName().getDb();
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException(dbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(dbName);
db.replayAddEncryptKey(encryptKey);
}
public static void dropEncryptKey(DropEncryptKeyStmt stmt) throws UserException {
EncryptKeyName name = stmt.getEncryptKeyName();
- Database db = Catalog.getCurrentCatalog().getDbOrDdlException(name.getDb());
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrDdlException(name.getDb());
db.dropEncryptKey(stmt.getEncryptKeysSearchDesc());
}
public static void replayDropEncryptKey(EncryptKeySearchDesc encryptKeySearchDesc) throws MetaNotFoundException {
String dbName = encryptKeySearchDesc.getKeyEncryptKeyName().getDb();
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException(dbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(dbName);
db.replayDropEncryptKey(encryptKeySearchDesc);
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/MetadataViewer.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/MetadataViewer.java
index f8babe93b9..56d6411f4a 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/MetadataViewer.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/MetadataViewer.java
@@ -51,7 +51,7 @@ public class MetadataViewer {
Catalog catalog = Catalog.getCurrentCatalog();
SystemInfoService infoService = Catalog.getCurrentSystemInfo();
- Database db = catalog.getDbOrDdlException(dbName);
+ Database db = catalog.getInternalDataSource().getDbOrDdlException(dbName);
OlapTable olapTable = db.getOlapTableOrDdlException(tblName);
olapTable.readLock();
@@ -169,7 +169,7 @@ public class MetadataViewer {
Catalog catalog = Catalog.getCurrentCatalog();
SystemInfoService infoService = Catalog.getCurrentSystemInfo();
- Database db = catalog.getDbOrDdlException(dbName);
+ Database db = catalog.getInternalDataSource().getDbOrDdlException(dbName);
OlapTable olapTable = db.getOlapTableOrDdlException(tblName);
olapTable.readLock();
try {
@@ -267,7 +267,7 @@ public class MetadataViewer {
throw new DdlException("Should specify one and only one partitions");
}
- Database db = catalog.getDbOrDdlException(dbName);
+ Database db = catalog.getInternalDataSource().getDbOrDdlException(dbName);
OlapTable olapTable = db.getOlapTableOrDdlException(tblName);
olapTable.readLock();
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/RefreshManager.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/RefreshManager.java
index a6bf673eb2..5b5ee2b7ca 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/RefreshManager.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/RefreshManager.java
@@ -40,7 +40,7 @@ public class RefreshManager {
Catalog catalog = Catalog.getCurrentCatalog();
// 0. check table type
- Database db = catalog.getDbOrDdlException(dbName);
+ Database db = catalog.getInternalDataSource().getDbOrDdlException(dbName);
Table table = db.getTableNullable(tableName);
if (!(table instanceof IcebergTable)) {
throw new DdlException("Only support refresh Iceberg table.");
@@ -67,7 +67,7 @@ public class RefreshManager {
String dbName = stmt.getDbName();
Catalog catalog = Catalog.getCurrentCatalog();
- Database db = catalog.getDbOrDdlException(dbName);
+ Database db = catalog.getInternalDataSource().getDbOrDdlException(dbName);
// 0. build iceberg property
// Since we have only persisted database properties with key-value format in DatabaseProperty,
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Table.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/Table.java
index 4284353faa..b31c9b5b9c 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Table.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Table.java
@@ -239,6 +239,7 @@ public class Table extends MetaObject implements Writable, TableIf {
return id;
}
+ @Override
public String getName() {
return name;
}
@@ -402,58 +403,22 @@ public class Table extends MetaObject implements Writable, TableIf {
return null;
}
+ @Override
public String getEngine() {
- switch (type) {
- case MYSQL:
- return "MySQL";
- case ODBC:
- return "Odbc";
- case OLAP:
- return "Doris";
- case SCHEMA:
- return "MEMORY";
- case INLINE_VIEW:
- return "InlineView";
- case VIEW:
- return "View";
- case BROKER:
- return "Broker";
- case ELASTICSEARCH:
- return "ElasticSearch";
- case HIVE:
- return "Hive";
- case HUDI:
- return "Hudi";
- default:
- return null;
- }
+ return type.toEngineName();
}
+ @Override
public String getMysqlType() {
- switch (type) {
- case OLAP:
- return "BASE TABLE";
- case SCHEMA:
- return "SYSTEM VIEW";
- case INLINE_VIEW:
- case VIEW:
- return "VIEW";
- case MYSQL:
- case ODBC:
- case BROKER:
- case ELASTICSEARCH:
- case HIVE:
- case HUDI:
- return "EXTERNAL TABLE";
- default:
- return null;
- }
+ return type.toMysqlType();
}
+ @Override
public String getComment() {
return getComment(false);
}
+ @Override
public String getComment(boolean escapeQuota) {
if (!Strings.isNullOrEmpty(comment)) {
if (!escapeQuota) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/TableIf.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/TableIf.java
index 01efa961ed..3802139839 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/TableIf.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/TableIf.java
@@ -88,20 +88,62 @@ public interface TableIf {
long getAvgRowLength();
+ long getLastCheckTime();
+
+ String getComment(boolean escapeQuota);
+
/**
* Doris table type.
*/
public enum TableType {
- MYSQL,
- ODBC,
- OLAP,
- SCHEMA,
- INLINE_VIEW,
- VIEW,
- BROKER,
- ELASTICSEARCH,
- HIVE,
- ICEBERG,
- HUDI
+ MYSQL, ODBC, OLAP, SCHEMA, INLINE_VIEW, VIEW, BROKER, ELASTICSEARCH, HIVE, ICEBERG, HUDI;
+
+ public String toEngineName() {
+ switch (this) {
+ case MYSQL:
+ return "MySQL";
+ case ODBC:
+ return "Odbc";
+ case OLAP:
+ return "Doris";
+ case SCHEMA:
+ return "MEMORY";
+ case INLINE_VIEW:
+ return "InlineView";
+ case VIEW:
+ return "View";
+ case BROKER:
+ return "Broker";
+ case ELASTICSEARCH:
+ return "ElasticSearch";
+ case HIVE:
+ return "Hive";
+ case HUDI:
+ return "Hudi";
+ default:
+ return null;
+ }
+ }
+
+ public String toMysqlType() {
+ switch (this) {
+ case OLAP:
+ return "BASE TABLE";
+ case SCHEMA:
+ return "SYSTEM VIEW";
+ case INLINE_VIEW:
+ case VIEW:
+ return "VIEW";
+ case MYSQL:
+ case ODBC:
+ case BROKER:
+ case ELASTICSEARCH:
+ case HIVE:
+ case HUDI:
+ return "EXTERNAL TABLE";
+ default:
+ return null;
+ }
+ }
}
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/TabletStatMgr.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/TabletStatMgr.java
index 09d936d79b..7d497ba23d 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/TabletStatMgr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/TabletStatMgr.java
@@ -76,9 +76,9 @@ public class TabletStatMgr extends MasterDaemon {
// after update replica in all backends, update index row num
start = System.currentTimeMillis();
- List<Long> dbIds = Catalog.getCurrentCatalog().getDbIds();
+ List<Long> dbIds = Catalog.getCurrentInternalCatalog().getDbIds();
for (Long dbId : dbIds) {
- Database db = Catalog.getCurrentCatalog().getDbNullable(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable(dbId);
if (db == null) {
continue;
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/external/ExternalTable.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/external/ExternalTable.java
index ab5a3fa6ef..a834e5508e 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/external/ExternalTable.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/external/ExternalTable.java
@@ -201,47 +201,53 @@ public class ExternalTable implements TableIf {
throw new NotImplementedException();
}
+ @Override
+ public String getEngine() {
+ return getType().toEngineName();
+ }
+
@Override
public String getMysqlType() {
- throw new NotImplementedException();
+ return getType().toMysqlType();
}
@Override
- public String getEngine() {
- throw new NotImplementedException();
+ public long getRowCount() {
+ return 0;
}
@Override
- public String getComment() {
- throw new NotImplementedException();
+ public long getAvgRowLength() {
+ return 0;
}
@Override
- public long getCreateTime() {
- throw new NotImplementedException();
+ public long getDataLength() {
+ return 0;
}
@Override
- public long getUpdateTime() {
- throw new NotImplementedException();
+ public long getCreateTime() {
+ return 0;
}
@Override
- public long getRowCount() {
- throw new NotImplementedException();
+ public long getUpdateTime() {
+ return 0;
}
@Override
- public long getDataLength() {
- throw new NotImplementedException();
+ public long getLastCheckTime() {
+ return 0;
}
@Override
- public long getAvgRowLength() {
- throw new NotImplementedException();
+ public String getComment() {
+ return "";
}
- public long getLastCheckTime() {
- throw new NotImplementedException();
+ @Override
+ public String getComment(boolean escapeQuota) {
+ return "";
}
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/clone/ColocateTableCheckerAndBalancer.java b/fe/fe-core/src/main/java/org/apache/doris/clone/ColocateTableCheckerAndBalancer.java
index 240c02ad56..2904a9efc2 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/clone/ColocateTableCheckerAndBalancer.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/clone/ColocateTableCheckerAndBalancer.java
@@ -146,7 +146,7 @@ public class ColocateTableCheckerAndBalancer extends MasterDaemon {
// get all groups
Set<GroupId> groupIds = colocateIndex.getAllGroupIds();
for (GroupId groupId : groupIds) {
- Database db = catalog.getDbNullable(groupId.dbId);
+ Database db = catalog.getInternalDataSource().getDbNullable(groupId.dbId);
if (db == null) {
continue;
}
@@ -214,7 +214,7 @@ public class ColocateTableCheckerAndBalancer extends MasterDaemon {
Set<GroupId> groupIds = colocateIndex.getAllGroupIds();
for (GroupId groupId : groupIds) {
List<Long> tableIds = colocateIndex.getAllTableIds(groupId);
- Database db = catalog.getDbNullable(groupId.dbId);
+ Database db = catalog.getInternalDataSource().getDbNullable(groupId.dbId);
if (db == null) {
continue;
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/clone/DynamicPartitionScheduler.java b/fe/fe-core/src/main/java/org/apache/doris/clone/DynamicPartitionScheduler.java
index 3a6c2fd508..b240578041 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/clone/DynamicPartitionScheduler.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/clone/DynamicPartitionScheduler.java
@@ -383,7 +383,7 @@ public class DynamicPartitionScheduler extends MasterDaemon {
Pair<Long, Long> tableInfo = iterator.next();
Long dbId = tableInfo.first;
Long tableId = tableInfo.second;
- Database db = Catalog.getCurrentCatalog().getDbNullable(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable(dbId);
if (db == null) {
iterator.remove();
continue;
@@ -494,8 +494,8 @@ public class DynamicPartitionScheduler extends MasterDaemon {
}
private void initDynamicPartitionTable() {
- for (Long dbId : Catalog.getCurrentCatalog().getDbIds()) {
- Database db = Catalog.getCurrentCatalog().getDbNullable(dbId);
+ for (Long dbId : Catalog.getCurrentCatalog().getInternalDataSource().getDbIds()) {
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable(dbId);
if (db == null) {
continue;
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/clone/TabletChecker.java b/fe/fe-core/src/main/java/org/apache/doris/clone/TabletChecker.java
index 6bb75a8333..ad4a08ab3d 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/clone/TabletChecker.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/clone/TabletChecker.java
@@ -241,7 +241,7 @@ public class TabletChecker extends MasterDaemon {
OUT:
for (long dbId : copiedPrios.rowKeySet()) {
- Database db = catalog.getDbNullable(dbId);
+ Database db = catalog.getInternalDataSource().getDbNullable(dbId);
if (db == null) {
continue;
}
@@ -273,10 +273,10 @@ public class TabletChecker extends MasterDaemon {
}
// 2. Traverse other partitions not in "prios"
- List<Long> dbIds = catalog.getDbIds();
+ List<Long> dbIds = catalog.getInternalDataSource().getDbIds();
OUT:
for (Long dbId : dbIds) {
- Database db = catalog.getDbNullable(dbId);
+ Database db = catalog.getInternalDataSource().getDbNullable(dbId);
if (db == null) {
continue;
}
@@ -435,7 +435,7 @@ public class TabletChecker extends MasterDaemon {
while (iter.hasNext()) {
Map.Entry<Long, Map<Long, Set<PrioPart>>> dbEntry = iter.next();
long dbId = dbEntry.getKey();
- Database db = Catalog.getCurrentCatalog().getDbNullable(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable(dbId);
if (db == null) {
iter.remove();
continue;
@@ -528,7 +528,7 @@ public class TabletChecker extends MasterDaemon {
public static RepairTabletInfo getRepairTabletInfo(String dbName, String tblName,
List<String> partitions) throws DdlException {
Catalog catalog = Catalog.getCurrentCatalog();
- Database db = catalog.getDbOrDdlException(dbName);
+ Database db = catalog.getInternalDataSource().getDbOrDdlException(dbName);
long dbId = db.getId();
long tblId = -1;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/clone/TabletSchedCtx.java b/fe/fe-core/src/main/java/org/apache/doris/clone/TabletSchedCtx.java
index ef9c3dda0e..78b39056f0 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/clone/TabletSchedCtx.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/clone/TabletSchedCtx.java
@@ -743,7 +743,7 @@ public class TabletSchedCtx implements Comparable<TabletSchedCtx> {
AgentTaskQueue.removeTask(cloneTask.getBackendId(), TTaskType.CLONE, cloneTask.getSignature());
// clear all CLONE replicas
- Database db = Catalog.getCurrentCatalog().getDbNullable(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable(dbId);
if (db != null) {
Table table = db.getTableNullable(tblId);
if (table != null && table.writeLockIfExist()) {
@@ -924,7 +924,7 @@ public class TabletSchedCtx implements Comparable<TabletSchedCtx> {
}
// 1. check the tablet status first
- Database db = Catalog.getCurrentCatalog().getDbOrException(dbId,
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrException(dbId,
s -> new SchedException(Status.UNRECOVERABLE, "db " + dbId + " does not exist"));
OlapTable olapTable = (OlapTable) db.getTableOrException(tblId,
s -> new SchedException(Status.UNRECOVERABLE, "tbl " + tabletId + " does not exist"));
diff --git a/fe/fe-core/src/main/java/org/apache/doris/clone/TabletScheduler.java b/fe/fe-core/src/main/java/org/apache/doris/clone/TabletScheduler.java
index 8e35c5fa23..058f1a20da 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/clone/TabletScheduler.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/clone/TabletScheduler.java
@@ -487,7 +487,7 @@ public class TabletScheduler extends MasterDaemon {
stat.counterTabletScheduled.incrementAndGet();
Pair<TabletStatus, TabletSchedCtx.Priority> statusPair;
- Database db = Catalog.getCurrentCatalog().getDbOrException(tabletCtx.getDbId(),
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrException(tabletCtx.getDbId(),
s -> new SchedException(Status.UNRECOVERABLE, "db " + tabletCtx.getDbId() + " does not exist"));
OlapTable tbl = (OlapTable) db.getTableOrException(tabletCtx.getTblId(),
s -> new SchedException(Status.UNRECOVERABLE, "tbl " + tabletCtx.getTblId() + " does not exist"));
diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/proc/DbsProcDir.java b/fe/fe-core/src/main/java/org/apache/doris/common/proc/DbsProcDir.java
index 08419d4f46..ec08a50695 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/common/proc/DbsProcDir.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/common/proc/DbsProcDir.java
@@ -19,7 +19,9 @@ package org.apache.doris.common.proc;
import org.apache.doris.catalog.Catalog;
import org.apache.doris.catalog.Database;
+import org.apache.doris.catalog.DatabaseIf;
import org.apache.doris.common.AnalysisException;
+import org.apache.doris.common.FeConstants;
import org.apache.doris.common.Pair;
import org.apache.doris.common.util.DebugUtil;
import org.apache.doris.common.util.ListComparator;
@@ -51,7 +53,6 @@ public class DbsProcDir implements ProcDirInterface {
@Override
public boolean register(String name, ProcNodeInterface node) {
- // 不支持静态注册,全部都是动态的查看
return false;
}
@@ -68,7 +69,10 @@ public class DbsProcDir implements ProcDirInterface {
throw new AnalysisException("Invalid db id format: " + dbIdStr);
}
- Database db = catalog.getDbOrAnalysisException(dbId);
+ DatabaseIf db = catalog.getInternalDataSource().getDbNullable(dbId);
+ if (db == null) {
+ throw new AnalysisException("Database " + dbId + " does not exist");
+ }
return new TablesProcDir(db);
}
@@ -79,7 +83,7 @@ public class DbsProcDir implements ProcDirInterface {
BaseProcResult result = new BaseProcResult();
result.setNames(TITLE_NAMES);
- List<String> dbNames = catalog.getDbNames();
+ List<String> dbNames = catalog.getInternalDataSource().getDbNames();
if (dbNames == null || dbNames.isEmpty()) {
// empty
return result;
@@ -88,7 +92,7 @@ public class DbsProcDir implements ProcDirInterface {
// get info
List<List<Comparable>> dbInfos = new ArrayList<List<Comparable>>();
for (String dbName : dbNames) {
- Database db = catalog.getDbNullable(dbName);
+ DatabaseIf db = catalog.getInternalDataSource().getDbNullable(dbName);
if (db == null) {
continue;
}
@@ -100,15 +104,19 @@ public class DbsProcDir implements ProcDirInterface {
dbInfo.add(dbName);
dbInfo.add(tableNum);
- long dataQuota = db.getDataQuota();
- Pair<Double, String> quotaUnitPair = DebugUtil.getByteUint(dataQuota);
- String readableQuota = DebugUtil.DECIMAL_FORMAT_SCALE_3.format(quotaUnitPair.first) + " "
- + quotaUnitPair.second;
+ String readableQuota = FeConstants.null_string;
+ String lastCheckTime = FeConstants.null_string;
+ long replicaQuota = 0;
+ if (db instanceof Database) {
+ long dataQuota = ((Database) db).getDataQuota();
+ Pair<Double, String> quotaUnitPair = DebugUtil.getByteUint(dataQuota);
+ readableQuota =
+ DebugUtil.DECIMAL_FORMAT_SCALE_3.format(quotaUnitPair.first) + " " + quotaUnitPair.second;
+ lastCheckTime = TimeUtils.longToTimeString(((Database) db).getLastCheckTime());
+ replicaQuota = ((Database) db).getReplicaQuota();
+ }
dbInfo.add(readableQuota);
-
- dbInfo.add(TimeUtils.longToTimeString(db.getLastCheckTime()));
-
- long replicaQuota = db.getReplicaQuota();
+ dbInfo.add(lastCheckTime);
dbInfo.add(replicaQuota);
} finally {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/proc/IncompleteTabletsProcNode.java b/fe/fe-core/src/main/java/org/apache/doris/common/proc/IncompleteTabletsProcNode.java
index 5dbe2d7cc7..1bd1e10ed8 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/common/proc/IncompleteTabletsProcNode.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/common/proc/IncompleteTabletsProcNode.java
@@ -17,7 +17,8 @@
package org.apache.doris.common.proc;
-import org.apache.doris.catalog.Database;
+import org.apache.doris.catalog.DatabaseIf;
+import org.apache.doris.catalog.TableIf;
import org.apache.doris.common.AnalysisException;
import com.google.common.base.Joiner;
@@ -36,9 +37,9 @@ public class IncompleteTabletsProcNode implements ProcNodeInterface {
.build();
private static final Joiner JOINER = Joiner.on(",");
- final Database db;
+ final DatabaseIf<TableIf> db;
- public IncompleteTabletsProcNode(Database db) {
+ public IncompleteTabletsProcNode(DatabaseIf db) {
this.db = db;
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/proc/IndexInfoProcDir.java b/fe/fe-core/src/main/java/org/apache/doris/common/proc/IndexInfoProcDir.java
index 56c3dc7b26..6ab28a094b 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/common/proc/IndexInfoProcDir.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/common/proc/IndexInfoProcDir.java
@@ -18,10 +18,10 @@
package org.apache.doris.common.proc;
import org.apache.doris.catalog.Column;
-import org.apache.doris.catalog.Database;
+import org.apache.doris.catalog.DatabaseIf;
import org.apache.doris.catalog.MaterializedIndexMeta;
import org.apache.doris.catalog.OlapTable;
-import org.apache.doris.catalog.Table;
+import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.TableIf.TableType;
import org.apache.doris.common.AnalysisException;
@@ -38,15 +38,14 @@ import java.util.Set;
* show indexNames(to schema)
*/
public class IndexInfoProcDir implements ProcDirInterface {
- public static final ImmutableList<String> TITLE_NAMES = new ImmutableList.Builder<String>()
- .add("IndexId").add("IndexName").add("SchemaVersion").add("SchemaHash")
- .add("ShortKeyColumnCount").add("StorageType").add("Keys")
- .build();
+ public static final ImmutableList<String> TITLE_NAMES =
+ new ImmutableList.Builder<String>().add("IndexId").add("IndexName").add("SchemaVersion").add("SchemaHash")
+ .add("ShortKeyColumnCount").add("StorageType").add("Keys").build();
- private Database db;
- private Table table;
+ private DatabaseIf db;
+ private TableIf table;
- public IndexInfoProcDir(Database db, Table table) {
+ public IndexInfoProcDir(DatabaseIf db, TableIf table) {
this.db = db;
this.table = table;
}
@@ -137,5 +136,4 @@ public class IndexInfoProcDir implements ProcDirInterface {
table.readUnlock();
}
}
-
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/proc/JobsDbProcDir.java b/fe/fe-core/src/main/java/org/apache/doris/common/proc/JobsDbProcDir.java
index ba1dc88ba1..a318b53a5b 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/common/proc/JobsDbProcDir.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/common/proc/JobsDbProcDir.java
@@ -60,7 +60,7 @@ public class JobsDbProcDir implements ProcDirInterface {
throw new AnalysisException("Invalid db id format: " + dbIdStr);
}
- Database db = catalog.getDbOrAnalysisException(dbId);
+ Database db = catalog.getInternalDataSource().getDbOrAnalysisException(dbId);
return new JobsProcDir(catalog, db);
}
@@ -72,13 +72,14 @@ public class JobsDbProcDir implements ProcDirInterface {
BaseProcResult result = new BaseProcResult();
result.setNames(TITLE_NAMES);
- List<String> names = catalog.getDbNames();
+ List<String> names = catalog.getInternalDataSource().getDbNames();
if (names == null || names.isEmpty()) {
return result;
}
for (String name : names) {
- catalog.getDb(name).ifPresent(db -> result.addRow(Lists.newArrayList(String.valueOf(db.getId()), name)));
+ catalog.getInternalDataSource().getDb(name)
+ .ifPresent(db -> result.addRow(Lists.newArrayList(String.valueOf(db.getId()), name)));
}
return result;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/proc/StatisticProcNode.java b/fe/fe-core/src/main/java/org/apache/doris/common/proc/StatisticProcNode.java
index a585a29f76..7e7189ae7f 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/common/proc/StatisticProcNode.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/common/proc/StatisticProcNode.java
@@ -18,11 +18,12 @@
package org.apache.doris.common.proc;
import org.apache.doris.catalog.Catalog;
-import org.apache.doris.catalog.Database;
+import org.apache.doris.catalog.DatabaseIf;
import org.apache.doris.catalog.MaterializedIndex;
import org.apache.doris.catalog.MaterializedIndex.IndexExtState;
import org.apache.doris.catalog.OlapTable;
import org.apache.doris.catalog.Partition;
+import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.TableIf.TableType;
import org.apache.doris.catalog.Tablet;
import org.apache.doris.common.AnalysisException;
@@ -51,13 +52,13 @@ public class StatisticProcNode implements ProcNodeInterface {
@Override
public ProcResult fetchResult() throws AnalysisException {
- List<DBStatistic> statistics = catalog.getDbIds().parallelStream()
+ List<DBStatistic> statistics = catalog.getDataSourceMgr().getDbIds().parallelStream()
// skip information_schema database
- .flatMap(id -> Stream.of(id == 0 ? null : catalog.getDbNullable(id)))
- .filter(Objects::nonNull).map(DBStatistic::new)
+ .flatMap(id -> Stream.of(id == 0 ? null : catalog.getDataSourceMgr().getDbNullable(id)))
+ .filter(Objects::nonNull)
+ .map(DBStatistic::new)
// sort by dbName
- .sorted(Comparator.comparing(db -> db.db.getFullName()))
- .collect(Collectors.toList());
+ .sorted(Comparator.comparing(db -> db.db.getFullName())).collect(Collectors.toList());
List<List<String>> rows = new ArrayList<>(statistics.size() + 1);
for (DBStatistic statistic : statistics) {
@@ -70,7 +71,7 @@ public class StatisticProcNode implements ProcNodeInterface {
static class DBStatistic {
boolean summary;
- Database db;
+ DatabaseIf<TableIf> db;
int dbNum;
int tableNum;
int partitionNum;
@@ -82,32 +83,34 @@ public class StatisticProcNode implements ProcNodeInterface {
this.summary = true;
}
- DBStatistic(Database db) {
+ DBStatistic(DatabaseIf db) {
Preconditions.checkNotNull(db);
this.summary = false;
this.db = db;
this.dbNum = 1;
- db.getTables().stream().filter(t -> t != null && t.getType() == TableType.OLAP).forEach(t -> {
+ this.db.getTables().stream().filter(t -> t != null).forEach(t -> {
++tableNum;
- OlapTable olapTable = (OlapTable) t;
- olapTable.readLock();
- try {
- for (Partition partition : olapTable.getAllPartitions()) {
- ++partitionNum;
- for (MaterializedIndex materializedIndex
- : partition.getMaterializedIndices(IndexExtState.VISIBLE)) {
- ++indexNum;
- List<Tablet> tablets = materializedIndex.getTablets();
- for (int i = 0; i < tablets.size(); ++i) {
- Tablet tablet = tablets.get(i);
- ++tabletNum;
- replicaNum += tablet.getReplicas().size();
- } // end for tablets
- } // end for indices
- } // end for partitions
- } finally {
- olapTable.readUnlock();
+ if (t.getType() == TableType.OLAP) {
+ OlapTable olapTable = (OlapTable) t;
+ olapTable.readLock();
+ try {
+ for (Partition partition : olapTable.getAllPartitions()) {
+ ++partitionNum;
+ for (MaterializedIndex materializedIndex : partition.getMaterializedIndices(
+ IndexExtState.VISIBLE)) {
+ ++indexNum;
+ List<Tablet> tablets = materializedIndex.getTablets();
+ for (int i = 0; i < tablets.size(); ++i) {
+ Tablet tablet = tablets.get(i);
+ ++tabletNum;
+ replicaNum += tablet.getReplicas().size();
+ } // end for tablets
+ } // end for indices
+ } // end for partitions
+ } finally {
+ olapTable.readUnlock();
+ }
}
});
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/proc/TableProcDir.java b/fe/fe-core/src/main/java/org/apache/doris/common/proc/TableProcDir.java
index f8cb5770cd..9ce12e9ab4 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/common/proc/TableProcDir.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/common/proc/TableProcDir.java
@@ -18,9 +18,10 @@
package org.apache.doris.common.proc;
import org.apache.doris.catalog.Database;
+import org.apache.doris.catalog.DatabaseIf;
import org.apache.doris.catalog.EsTable;
import org.apache.doris.catalog.OlapTable;
-import org.apache.doris.catalog.Table;
+import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.TableIf.TableType;
import org.apache.doris.common.AnalysisException;
@@ -34,24 +35,19 @@ import com.google.common.collect.Lists;
* show choice to schema or to partitions
*/
public class TableProcDir implements ProcDirInterface {
- public static final ImmutableList<String> TITLE_NAMES = new ImmutableList.Builder<String>()
- .add("Nodes")
- .build();
+ public static final ImmutableList<String> TITLE_NAMES = new ImmutableList.Builder<String>().add("Nodes").build();
public static final String INDEX_SCHEMA = "index_schema";
private static final String PARTITIONS = "partitions";
private static final String TEMP_PARTITIONS = "temp_partitions";
- private static final ImmutableList<String> CHILDREN_NODES = new ImmutableList.Builder<String>()
- .add(PARTITIONS)
- .add(TEMP_PARTITIONS)
- .add(INDEX_SCHEMA)
- .build();
+ private static final ImmutableList<String> CHILDREN_NODES =
+ new ImmutableList.Builder<String>().add(PARTITIONS).add(TEMP_PARTITIONS).add(INDEX_SCHEMA).build();
- private Database db;
- private Table table;
+ private DatabaseIf db;
+ private TableIf table;
- public TableProcDir(Database db, Table table) {
+ public TableProcDir(DatabaseIf db, TableIf table) {
this.db = db;
this.table = table;
}
@@ -83,15 +79,15 @@ public class TableProcDir implements ProcDirInterface {
if (entryName.equals(PARTITIONS)) {
if (table.getType() == TableType.OLAP) {
- return new PartitionsProcDir(db, (OlapTable) table, false);
+ return new PartitionsProcDir((Database) db, (OlapTable) table, false);
} else if (table.getType() == TableType.ELASTICSEARCH) {
- return new EsPartitionsProcDir(db, (EsTable) table);
+ return new EsPartitionsProcDir((Database) db, (EsTable) table);
} else {
throw new AnalysisException("Table[" + table.getName() + "] is not a OLAP or ELASTICSEARCH table");
}
} else if (entryName.equals(TEMP_PARTITIONS)) {
if (table.getType() == TableType.OLAP) {
- return new PartitionsProcDir(db, (OlapTable) table, true);
+ return new PartitionsProcDir((Database) db, (OlapTable) table, true);
} else {
throw new AnalysisException("Table[" + table.getName() + "] does not have temp partitions");
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/proc/TablesProcDir.java b/fe/fe-core/src/main/java/org/apache/doris/common/proc/TablesProcDir.java
index 53d02ea320..3b43ec8871 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/common/proc/TablesProcDir.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/common/proc/TablesProcDir.java
@@ -18,11 +18,11 @@
package org.apache.doris.common.proc;
import org.apache.doris.catalog.Column;
-import org.apache.doris.catalog.Database;
+import org.apache.doris.catalog.DatabaseIf;
import org.apache.doris.catalog.OlapTable;
import org.apache.doris.catalog.PartitionType;
import org.apache.doris.catalog.RangePartitionInfo;
-import org.apache.doris.catalog.Table;
+import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.TableIf.TableType;
import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.FeConstants;
@@ -47,9 +47,9 @@ public class TablesProcDir implements ProcDirInterface {
.add("PartitionNum").add("State").add("Type").add("LastConsistencyCheckTime").add("ReplicaCount")
.build();
- private Database db;
+ private DatabaseIf db;
- public TablesProcDir(Database db) {
+ public TablesProcDir(DatabaseIf db) {
this.db = db;
}
@@ -72,8 +72,7 @@ public class TablesProcDir implements ProcDirInterface {
throw new AnalysisException("Invalid table id format: " + tableIdStr);
}
- Table table = db.getTableOrAnalysisException(tableId);
-
+ TableIf table = db.getTableOrAnalysisException(tableId);
return new TableProcDir(db, table);
}
@@ -83,8 +82,8 @@ public class TablesProcDir implements ProcDirInterface {
// get info
List<List<Comparable>> tableInfos = new ArrayList<List<Comparable>>();
- List<Table> tableList = db.getTables();
- for (Table table : tableList) {
+ List<TableIf> tableList = db.getTables();
+ for (TableIf table : tableList) {
List<Comparable> tableInfo = new ArrayList<Comparable>();
int partitionNum = 1;
long replicaCount = 0;
@@ -114,6 +113,9 @@ public class TablesProcDir implements ProcDirInterface {
tableInfo.add(partitionNum);
tableInfo.add(olapTable.getState());
tableInfo.add(table.getType());
+ // last check time
+ tableInfo.add(TimeUtils.longToTimeString(olapTable.getLastCheckTime()));
+ tableInfo.add(replicaCount);
} else {
tableInfo.add(table.getId());
tableInfo.add(table.getName());
@@ -122,11 +124,12 @@ public class TablesProcDir implements ProcDirInterface {
tableInfo.add(partitionNum);
tableInfo.add(FeConstants.null_string);
tableInfo.add(table.getType());
+ // last check time
+ tableInfo.add(FeConstants.null_string);
+ tableInfo.add(replicaCount);
}
- // last check time
- tableInfo.add(TimeUtils.longToTimeString(table.getLastCheckTime()));
- tableInfo.add(replicaCount);
+
tableInfos.add(tableInfo);
} finally {
table.readUnlock();
diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/proc/TabletHealthProcDir.java b/fe/fe-core/src/main/java/org/apache/doris/common/proc/TabletHealthProcDir.java
index bf847c84af..c88377924b 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/common/proc/TabletHealthProcDir.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/common/proc/TabletHealthProcDir.java
@@ -19,13 +19,14 @@ package org.apache.doris.common.proc;
import org.apache.doris.catalog.Catalog;
import org.apache.doris.catalog.ColocateTableIndex;
-import org.apache.doris.catalog.Database;
+import org.apache.doris.catalog.DatabaseIf;
import org.apache.doris.catalog.MaterializedIndex;
import org.apache.doris.catalog.OlapTable;
import org.apache.doris.catalog.Partition;
import org.apache.doris.catalog.Replica;
import org.apache.doris.catalog.ReplicaAllocation;
import org.apache.doris.catalog.Table;
+import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.Tablet;
import org.apache.doris.clone.TabletSchedCtx;
import org.apache.doris.common.AnalysisException;
@@ -78,7 +79,7 @@ public class TabletHealthProcDir implements ProcDirInterface {
public ProcNodeInterface lookup(String dbIdStr) throws AnalysisException {
try {
long dbId = Long.parseLong(dbIdStr);
- return catalog.getDb(dbId).map(IncompleteTabletsProcNode::new).orElse(null);
+ return catalog.getInternalDataSource().getDb(dbId).map(IncompleteTabletsProcNode::new).orElse(null);
} catch (NumberFormatException e) {
throw new AnalysisException("Invalid db id format: " + dbIdStr);
}
@@ -86,13 +87,12 @@ public class TabletHealthProcDir implements ProcDirInterface {
@Override
public ProcResult fetchResult() throws AnalysisException {
- List<DBTabletStatistic> statistics = catalog.getDbIds().parallelStream()
+ List<DBTabletStatistic> statistics = catalog.getInternalDataSource().getDbIds().parallelStream()
// skip information_schema database
- .flatMap(id -> Stream.of(id == 0 ? null : catalog.getDbNullable(id)))
+ .flatMap(id -> Stream.of(id == 0 ? null : catalog.getInternalDataSource().getDbNullable(id)))
.filter(Objects::nonNull).map(DBTabletStatistic::new)
// sort by dbName
- .sorted(Comparator.comparing(db -> db.db.getFullName()))
- .collect(Collectors.toList());
+ .sorted(Comparator.comparing(db -> db.db.getFullName())).collect(Collectors.toList());
List<List<String>> rows = new ArrayList<>(statistics.size() + 1);
for (DBTabletStatistic statistic : statistics) {
@@ -104,7 +104,7 @@ public class TabletHealthProcDir implements ProcDirInterface {
static class DBTabletStatistic {
boolean summary;
- Database db;
+ DatabaseIf<TableIf> db;
int dbNum;
int tabletNum;
int healthyNum;
@@ -144,7 +144,7 @@ public class TabletHealthProcDir implements ProcDirInterface {
this.summary = true;
}
- DBTabletStatistic(Database db) {
+ DBTabletStatistic(DatabaseIf db) {
Preconditions.checkNotNull(db);
this.summary = false;
this.db = db;
@@ -167,11 +167,11 @@ public class TabletHealthProcDir implements ProcDirInterface {
SystemInfoService infoService = Catalog.getCurrentSystemInfo();
ColocateTableIndex colocateTableIndex = Catalog.getCurrentColocateIndex();
- List<Long> aliveBeIdsInCluster = infoService.getClusterBackendIds(db.getClusterName(), true);
+ List<Long> aliveBeIdsInCluster = infoService.getClusterBackendIds(SystemInfoService.DEFAULT_CLUSTER, true);
this.cloningTabletIds = AgentTaskQueue.getTask(db.getId(), TTaskType.CLONE)
.stream().map(AgentTask::getTabletId).collect(Collectors.toSet());
this.cloningNum = cloningTabletIds.size();
- db.getTables().stream().filter(t -> t != null && t.getType() == Table.TableType.OLAP).forEach(t -> {
+ this.db.getTables().stream().filter(t -> t != null && t.getType() == Table.TableType.OLAP).forEach(t -> {
OlapTable olapTable = (OlapTable) t;
ColocateTableIndex.GroupId groupId = colocateTableIndex.isColocateTable(olapTable.getId())
? colocateTableIndex.getGroup(olapTable.getId()) : null;
@@ -180,8 +180,8 @@ public class TabletHealthProcDir implements ProcDirInterface {
for (Partition partition : olapTable.getAllPartitions()) {
ReplicaAllocation replicaAlloc = olapTable.getPartitionInfo()
.getReplicaAllocation(partition.getId());
- for (MaterializedIndex materializedIndex : partition
- .getMaterializedIndices(MaterializedIndex.IndexExtState.VISIBLE)) {
+ for (MaterializedIndex materializedIndex : partition.getMaterializedIndices(
+ MaterializedIndex.IndexExtState.VISIBLE)) {
List<Tablet> tablets = materializedIndex.getTablets();
for (int i = 0; i < tablets.size(); ++i) {
Tablet tablet = tablets.get(i);
@@ -189,12 +189,13 @@ public class TabletHealthProcDir implements ProcDirInterface {
Tablet.TabletStatus res = null;
if (groupId != null) {
Set<Long> backendsSet = colocateTableIndex.getTabletBackendsByGroup(groupId, i);
- res = tablet.getColocateHealthStatus(
- partition.getVisibleVersion(), replicaAlloc, backendsSet);
+ res = tablet.getColocateHealthStatus(partition.getVisibleVersion(), replicaAlloc,
+ backendsSet);
} else {
- Pair<Tablet.TabletStatus, TabletSchedCtx.Priority> pair
- = tablet.getHealthStatusWithPriority(infoService, db.getClusterName(),
- partition.getVisibleVersion(), replicaAlloc, aliveBeIdsInCluster);
+ Pair<Tablet.TabletStatus, TabletSchedCtx.Priority> pair =
+ tablet.getHealthStatusWithPriority(infoService,
+ SystemInfoService.DEFAULT_CLUSTER, partition.getVisibleVersion(),
+ replicaAlloc, aliveBeIdsInCluster);
res = pair.first;
}
switch (res) { // CHECKSTYLE IGNORE THIS LINE: missing switch default
diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/util/MetaLockUtils.java b/fe/fe-core/src/main/java/org/apache/doris/common/util/MetaLockUtils.java
index 82954dce5c..ece62cbc10 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/common/util/MetaLockUtils.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/common/util/MetaLockUtils.java
@@ -17,8 +17,8 @@
package org.apache.doris.common.util;
-import org.apache.doris.catalog.Database;
-import org.apache.doris.catalog.Table;
+import org.apache.doris.catalog.DatabaseIf;
+import org.apache.doris.catalog.TableIf;
import org.apache.doris.common.MetaNotFoundException;
import com.google.common.collect.Lists;
@@ -33,39 +33,39 @@ import java.util.concurrent.TimeUnit;
*/
public class MetaLockUtils {
- public static void readLockDatabases(List<Database> databaseList) {
- for (Database database : databaseList) {
+ public static void readLockDatabases(List<? extends DatabaseIf> databaseList) {
+ for (DatabaseIf database : databaseList) {
database.readLock();
}
}
- public static void readUnlockDatabases(List<Database> databaseList) {
+ public static void readUnlockDatabases(List<? extends DatabaseIf> databaseList) {
for (int i = databaseList.size() - 1; i >= 0; i--) {
databaseList.get(i).readUnlock();
}
}
- public static void readLockTables(List<Table> tableList) {
- for (Table table : tableList) {
+ public static void readLockTables(List<? extends TableIf> tableList) {
+ for (TableIf table : tableList) {
table.readLock();
}
}
- public static void readUnlockTables(List<Table> tableList) {
+ public static void readUnlockTables(List<? extends TableIf> tableList) {
for (int i = tableList.size() - 1; i >= 0; i--) {
tableList.get(i).readUnlock();
}
}
- public static void writeLockTables(List<Table> tableList) {
- for (Table table : tableList) {
+ public static void writeLockTables(List<? extends TableIf> tableList) {
+ for (TableIf table : tableList) {
table.writeLock();
}
}
- public static List<Table> writeLockTablesIfExist(List<Table> tableList) {
- List<Table> lockedTablesList = Lists.newArrayListWithCapacity(tableList.size());
- for (Table table : tableList) {
+ public static List<? extends TableIf> writeLockTablesIfExist(List<? extends TableIf> tableList) {
+ List<TableIf> lockedTablesList = Lists.newArrayListWithCapacity(tableList.size());
+ for (TableIf table : tableList) {
if (table.writeLockIfExist()) {
lockedTablesList.add(table);
}
@@ -73,7 +73,7 @@ public class MetaLockUtils {
return lockedTablesList;
}
- public static void writeLockTablesOrMetaException(List<Table> tableList) throws MetaNotFoundException {
+ public static void writeLockTablesOrMetaException(List<? extends TableIf> tableList) throws MetaNotFoundException {
for (int i = 0; i < tableList.size(); i++) {
try {
tableList.get(i).writeLockOrMetaException();
@@ -86,8 +86,8 @@ public class MetaLockUtils {
}
}
- public static boolean tryWriteLockTablesOrMetaException(List<Table> tableList,
- long timeout, TimeUnit unit) throws MetaNotFoundException {
+ public static boolean tryWriteLockTablesOrMetaException(List<? extends TableIf> tableList, long timeout,
+ TimeUnit unit) throws MetaNotFoundException {
for (int i = 0; i < tableList.size(); i++) {
try {
if (!tableList.get(i).tryWriteLockOrMetaException(timeout, unit)) {
@@ -106,7 +106,7 @@ public class MetaLockUtils {
return true;
}
- public static void writeUnlockTables(List<Table> tableList) {
+ public static void writeUnlockTables(List<? extends TableIf> tableList) {
for (int i = tableList.size() - 1; i >= 0; i--) {
tableList.get(i).writeUnlock();
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/util/SmallFileMgr.java b/fe/fe-core/src/main/java/org/apache/doris/common/util/SmallFileMgr.java
index e96c527906..ae4bb3c2c9 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/common/util/SmallFileMgr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/common/util/SmallFileMgr.java
@@ -164,14 +164,14 @@ public class SmallFileMgr implements Writable {
public void createFile(CreateFileStmt stmt) throws DdlException {
String dbName = stmt.getDbName();
- Database db = Catalog.getCurrentCatalog().getDbOrDdlException(dbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrDdlException(dbName);
downloadAndAddFile(db.getId(), stmt.getCatalogName(), stmt.getFileName(),
stmt.getDownloadUrl(), stmt.getChecksum(), stmt.isSaveContent());
}
public void dropFile(DropFileStmt stmt) throws DdlException {
String dbName = stmt.getDbName();
- Database db = Catalog.getCurrentCatalog().getDbOrDdlException(dbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrDdlException(dbName);
removeFile(db.getId(), stmt.getCatalogName(), stmt.getFileName(), false);
}
@@ -455,7 +455,7 @@ public class SmallFileMgr implements Writable {
}
public List<List<String>> getInfo(String dbName) throws DdlException {
- Database db = Catalog.getCurrentCatalog().getDbOrDdlException(dbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrDdlException(dbName);
List<List<String>> infos = Lists.newArrayList();
synchronized (files) {
if (files.containsRow(db.getId())) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/consistency/CheckConsistencyJob.java b/fe/fe-core/src/main/java/org/apache/doris/consistency/CheckConsistencyJob.java
index 0d0327d8b3..b3f43ae346 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/consistency/CheckConsistencyJob.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/consistency/CheckConsistencyJob.java
@@ -112,7 +112,7 @@ public class CheckConsistencyJob {
return false;
}
- Database db = Catalog.getCurrentCatalog().getDbNullable(tabletMeta.getDbId());
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable(tabletMeta.getDbId());
if (db == null) {
LOG.debug("db[{}] does not exist", tabletMeta.getDbId());
return false;
@@ -253,7 +253,7 @@ public class CheckConsistencyJob {
return -1;
}
- Database db = Catalog.getCurrentCatalog().getDbNullable(tabletMeta.getDbId());
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable(tabletMeta.getDbId());
if (db == null) {
LOG.warn("db[{}] does not exist", tabletMeta.getDbId());
return -1;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/consistency/ConsistencyChecker.java b/fe/fe-core/src/main/java/org/apache/doris/consistency/ConsistencyChecker.java
index 8b7741f724..420d778020 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/consistency/ConsistencyChecker.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/consistency/ConsistencyChecker.java
@@ -238,7 +238,7 @@ public class ConsistencyChecker extends MasterDaemon {
List<Long> chosenTablets = Lists.newArrayList();
// sort dbs
- List<Long> dbIds = catalog.getDbIds();
+ List<Long> dbIds = catalog.getInternalDataSource().getDbIds();
if (dbIds.isEmpty()) {
return chosenTablets;
}
@@ -248,7 +248,7 @@ public class ConsistencyChecker extends MasterDaemon {
// skip 'information_schema' database
continue;
}
- Database db = catalog.getDbNullable(dbId);
+ Database db = catalog.getInternalDataSource().getDbNullable(dbId);
if (db == null) {
continue;
}
@@ -365,7 +365,7 @@ public class ConsistencyChecker extends MasterDaemon {
}
public void replayFinishConsistencyCheck(ConsistencyCheckInfo info, Catalog catalog) throws MetaNotFoundException {
- Database db = catalog.getDbOrMetaException(info.getDbId());
+ Database db = catalog.getInternalDataSource().getDbOrMetaException(info.getDbId());
OlapTable table = (OlapTable) db.getTableOrMetaException(info.getTableId());
table.writeLock();
try {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/DataSourceIf.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/DataSourceIf.java
index 4ac11d2480..93260e2746 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/DataSourceIf.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/DataSourceIf.java
@@ -30,7 +30,7 @@ import javax.annotation.Nullable;
/**
* The interface of DataSource(catalog).
*/
-public interface DataSourceIf {
+public interface DataSourceIf<T extends DatabaseIf> {
// Type of this data source
String getType();
@@ -42,31 +42,33 @@ public interface DataSourceIf {
List<String> getDbNames();
+ List<Long> getDbIds();
+
@Nullable
- DatabaseIf getDbNullable(String dbName);
+ T getDbNullable(String dbName);
@Nullable
- DatabaseIf getDbNullable(long dbId);
+ T getDbNullable(long dbId);
- Optional<DatabaseIf> getDb(String dbName);
+ Optional<T> getDb(String dbName);
- Optional<DatabaseIf> getDb(long dbId);
+ Optional<T> getDb(long dbId);
- <E extends Exception> DatabaseIf getDbOrException(String dbName, java.util.function.Function<String, E> e) throws E;
+ <E extends Exception> T getDbOrException(String dbName, java.util.function.Function<String, E> e) throws E;
- <E extends Exception> DatabaseIf getDbOrException(long dbId, java.util.function.Function<Long, E> e) throws E;
+ <E extends Exception> T getDbOrException(long dbId, java.util.function.Function<Long, E> e) throws E;
- DatabaseIf getDbOrMetaException(String dbName) throws MetaNotFoundException;
+ T getDbOrMetaException(String dbName) throws MetaNotFoundException;
- DatabaseIf getDbOrMetaException(long dbId) throws MetaNotFoundException;
+ T getDbOrMetaException(long dbId) throws MetaNotFoundException;
- DatabaseIf getDbOrDdlException(String dbName) throws DdlException;
+ T getDbOrDdlException(String dbName) throws DdlException;
- DatabaseIf getDbOrDdlException(long dbId) throws DdlException;
+ T getDbOrDdlException(long dbId) throws DdlException;
- DatabaseIf getDbOrAnalysisException(String dbName) throws AnalysisException;
+ T getDbOrAnalysisException(String dbName) throws AnalysisException;
- DatabaseIf getDbOrAnalysisException(long dbId) throws AnalysisException;
+ T getDbOrAnalysisException(long dbId) throws AnalysisException;
Map<String, String> getProperties();
diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/DataSourceMgr.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/DataSourceMgr.java
index 8f04e035b2..192d25b6a4 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/DataSourceMgr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/DataSourceMgr.java
@@ -23,6 +23,7 @@ import org.apache.doris.analysis.CreateCatalogStmt;
import org.apache.doris.analysis.DropCatalogStmt;
import org.apache.doris.analysis.ShowCatalogStmt;
import org.apache.doris.catalog.Catalog;
+import org.apache.doris.catalog.DatabaseIf;
import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.DdlException;
import org.apache.doris.common.ErrorCode;
@@ -83,6 +84,39 @@ public class DataSourceMgr implements Writable {
return nameToCatalogs.get(name);
}
+ public DatabaseIf getDbNullable(long dbId) {
+ DatabaseIf db = internalDataSource.getDbNullable(dbId);
+ if (db != null) {
+ return db;
+ }
+ for (DataSourceIf ds : nameToCatalogs.values()) {
+ if (ds == internalDataSource) {
+ continue;
+ }
+ db = ds.getDbNullable(dbId);
+ if (db != null) {
+ return db;
+ }
+ }
+ return null;
+ }
+
+ public List<Long> getDbIds() {
+ List<Long> dbIds = Lists.newArrayList();
+ for (DataSourceIf ds : nameToCatalogs.values()) {
+ dbIds.addAll(ds.getDbIds());
+ }
+ return dbIds;
+ }
+
+ public List<String> getDbNames() {
+ List<String> dbNames = Lists.newArrayList();
+ for (DataSourceIf ds : nameToCatalogs.values()) {
+ dbNames.addAll(ds.getDbNames());
+ }
+ return dbNames;
+ }
+
private void writeLock() {
lock.writeLock().lock();
}
@@ -187,13 +221,13 @@ public class DataSourceMgr implements Writable {
if (!nameToCatalogs.containsKey(showStmt.getCatalogName())) {
throw new AnalysisException("No catalog found with name: " + showStmt.getCatalogName());
}
- DataSourceIf ds = nameToCatalogs.get(showStmt.getCatalogName());
+ DataSourceIf<DatabaseIf> ds = nameToCatalogs.get(showStmt.getCatalogName());
if (!Catalog.getCurrentCatalog().getAuth().checkCtlPriv(
ConnectContext.get(), ds.getName(), PrivPredicate.SHOW)) {
ErrorReport.reportAnalysisException(ErrorCode.ERR_CATALOG_ACCESS_DENIED,
ConnectContext.get().getQualifiedUser(), ds.getName());
}
- for (Map.Entry<String, String> elem : ds.getProperties().entrySet()) {
+ for (Map.Entry<String, String> elem : ds.getProperties().entrySet()) {
List<String> row = Lists.newArrayList();
row.add(elem.getKey());
row.add(elem.getValue());
diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/EsExternalDataSource.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/EsExternalDataSource.java
index 41909b0927..ddbf5b5aa1 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/EsExternalDataSource.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/EsExternalDataSource.java
@@ -17,6 +17,9 @@
package org.apache.doris.datasource;
+
+import com.google.common.collect.Lists;
+
import java.util.List;
import java.util.Map;
@@ -24,7 +27,6 @@ import java.util.Map;
* External data source for elasticsearch
*/
public class EsExternalDataSource extends ExternalDataSource {
-
/**
* Default constructor for EsExternalDataSource.
*/
@@ -48,4 +50,10 @@ public class EsExternalDataSource extends ExternalDataSource {
public boolean tableExist(SessionContext ctx, String dbName, String tblName) {
return false;
}
+
+ @Override
+ public List<Long> getDbIds() {
+ // TODO: implement it
+ return Lists.newArrayList();
+ }
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalDataSource.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalDataSource.java
index 7e94e90a30..3ae70e5c2c 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalDataSource.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalDataSource.java
@@ -17,7 +17,7 @@
package org.apache.doris.datasource;
-import org.apache.doris.catalog.DatabaseIf;
+import org.apache.doris.catalog.external.ExternalDatabase;
import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.DdlException;
import org.apache.doris.common.MetaNotFoundException;
@@ -42,7 +42,7 @@ import java.util.function.Function;
* The abstract class for all types of external data sources.
*/
@Data
-public abstract class ExternalDataSource implements DataSourceIf, Writable {
+public abstract class ExternalDataSource implements DataSourceIf<ExternalDatabase>, Writable {
// Unique id of this data source, will be assigned after data source is loaded.
@SerializedName(value = "id")
protected long id;
@@ -96,63 +96,63 @@ public abstract class ExternalDataSource implements DataSourceIf, Writable {
@Nullable
@Override
- public DatabaseIf getDbNullable(String dbName) {
+ public ExternalDatabase getDbNullable(String dbName) {
throw new NotImplementedException();
}
@Nullable
@Override
- public DatabaseIf getDbNullable(long dbId) {
+ public ExternalDatabase getDbNullable(long dbId) {
throw new NotImplementedException();
}
@Override
- public Optional<DatabaseIf> getDb(String dbName) {
+ public Optional<ExternalDatabase> getDb(String dbName) {
throw new NotImplementedException();
}
@Override
- public Optional<DatabaseIf> getDb(long dbId) {
+ public Optional<ExternalDatabase> getDb(long dbId) {
throw new NotImplementedException();
}
@Override
- public <E extends Exception> DatabaseIf getDbOrException(String dbName, Function<String, E> e) throws E {
+ public <E extends Exception> ExternalDatabase getDbOrException(String dbName, Function<String, E> e) throws E {
throw new NotImplementedException();
}
@Override
- public <E extends Exception> DatabaseIf getDbOrException(long dbId, Function<Long, E> e) throws E {
+ public <E extends Exception> ExternalDatabase getDbOrException(long dbId, Function<Long, E> e) throws E {
throw new NotImplementedException();
}
@Override
- public DatabaseIf getDbOrMetaException(String dbName) throws MetaNotFoundException {
+ public ExternalDatabase getDbOrMetaException(String dbName) throws MetaNotFoundException {
throw new NotImplementedException();
}
@Override
- public DatabaseIf getDbOrMetaException(long dbId) throws MetaNotFoundException {
+ public ExternalDatabase getDbOrMetaException(long dbId) throws MetaNotFoundException {
throw new NotImplementedException();
}
@Override
- public DatabaseIf getDbOrDdlException(String dbName) throws DdlException {
+ public ExternalDatabase getDbOrDdlException(String dbName) throws DdlException {
throw new NotImplementedException();
}
@Override
- public DatabaseIf getDbOrDdlException(long dbId) throws DdlException {
+ public ExternalDatabase getDbOrDdlException(long dbId) throws DdlException {
throw new NotImplementedException();
}
@Override
- public DatabaseIf getDbOrAnalysisException(String dbName) throws AnalysisException {
+ public ExternalDatabase getDbOrAnalysisException(String dbName) throws AnalysisException {
throw new NotImplementedException();
}
@Override
- public DatabaseIf getDbOrAnalysisException(long dbId) throws AnalysisException {
+ public ExternalDatabase getDbOrAnalysisException(long dbId) throws AnalysisException {
throw new NotImplementedException();
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/HMSExternalDataSource.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/HMSExternalDataSource.java
index fa7b27d5a3..b7097ff4cf 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/HMSExternalDataSource.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/HMSExternalDataSource.java
@@ -17,7 +17,7 @@
package org.apache.doris.datasource;
-import org.apache.doris.catalog.DatabaseIf;
+import org.apache.doris.catalog.external.ExternalDatabase;
import org.apache.doris.catalog.external.HMSExternalDatabase;
import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.DdlException;
@@ -139,7 +139,7 @@ public class HMSExternalDataSource extends ExternalDataSource {
@Nullable
@Override
- public DatabaseIf getDbNullable(String dbName) {
+ public ExternalDatabase getDbNullable(String dbName) {
try {
client.getDatabase(dbName);
} catch (TException e) {
@@ -155,7 +155,7 @@ public class HMSExternalDataSource extends ExternalDataSource {
@Nullable
@Override
- public DatabaseIf getDbNullable(long dbId) {
+ public ExternalDatabase getDbNullable(long dbId) {
for (Map.Entry<String, Long> entry : dbNameToId.entrySet()) {
if (entry.getValue() == dbId) {
return new HMSExternalDatabase(this, dbId, entry.getKey(), hiveMetastoreUris);
@@ -165,18 +165,18 @@ public class HMSExternalDataSource extends ExternalDataSource {
}
@Override
- public Optional<DatabaseIf> getDb(String dbName) {
+ public Optional<ExternalDatabase> getDb(String dbName) {
return Optional.ofNullable(getDbNullable(dbName));
}
@Override
- public Optional<DatabaseIf> getDb(long dbId) {
+ public Optional<ExternalDatabase> getDb(long dbId) {
return Optional.ofNullable(getDbNullable(dbId));
}
@Override
- public <E extends Exception> DatabaseIf getDbOrException(String dbName, Function<String, E> e) throws E {
- DatabaseIf db = getDbNullable(dbName);
+ public <E extends Exception> ExternalDatabase getDbOrException(String dbName, Function<String, E> e) throws E {
+ ExternalDatabase db = getDbNullable(dbName);
if (db == null) {
throw e.apply(dbName);
}
@@ -184,8 +184,8 @@ public class HMSExternalDataSource extends ExternalDataSource {
}
@Override
- public <E extends Exception> DatabaseIf getDbOrException(long dbId, Function<Long, E> e) throws E {
- DatabaseIf db = getDbNullable(dbId);
+ public <E extends Exception> ExternalDatabase getDbOrException(long dbId, Function<Long, E> e) throws E {
+ ExternalDatabase db = getDbNullable(dbId);
if (db == null) {
throw e.apply(dbId);
}
@@ -193,38 +193,43 @@ public class HMSExternalDataSource extends ExternalDataSource {
}
@Override
- public DatabaseIf getDbOrMetaException(String dbName) throws MetaNotFoundException {
+ public ExternalDatabase getDbOrMetaException(String dbName) throws MetaNotFoundException {
return getDbOrException(dbName,
s -> new MetaNotFoundException("unknown databases, dbName=" + s, ErrorCode.ERR_BAD_DB_ERROR));
}
@Override
- public DatabaseIf getDbOrMetaException(long dbId) throws MetaNotFoundException {
+ public ExternalDatabase getDbOrMetaException(long dbId) throws MetaNotFoundException {
return getDbOrException(dbId,
s -> new MetaNotFoundException("unknown databases, dbId=" + s, ErrorCode.ERR_BAD_DB_ERROR));
}
@Override
- public DatabaseIf getDbOrDdlException(String dbName) throws DdlException {
+ public ExternalDatabase getDbOrDdlException(String dbName) throws DdlException {
return getDbOrException(dbName,
s -> new DdlException(ErrorCode.ERR_BAD_DB_ERROR.formatErrorMsg(s), ErrorCode.ERR_BAD_DB_ERROR));
}
@Override
- public DatabaseIf getDbOrDdlException(long dbId) throws DdlException {
+ public ExternalDatabase getDbOrDdlException(long dbId) throws DdlException {
return getDbOrException(dbId,
s -> new DdlException(ErrorCode.ERR_BAD_DB_ERROR.formatErrorMsg(s), ErrorCode.ERR_BAD_DB_ERROR));
}
@Override
- public DatabaseIf getDbOrAnalysisException(String dbName) throws AnalysisException {
+ public ExternalDatabase getDbOrAnalysisException(String dbName) throws AnalysisException {
return getDbOrException(dbName,
s -> new AnalysisException(ErrorCode.ERR_BAD_DB_ERROR.formatErrorMsg(s), ErrorCode.ERR_BAD_DB_ERROR));
}
@Override
- public DatabaseIf getDbOrAnalysisException(long dbId) throws AnalysisException {
+ public ExternalDatabase getDbOrAnalysisException(long dbId) throws AnalysisException {
return getDbOrException(dbId,
s -> new AnalysisException(ErrorCode.ERR_BAD_DB_ERROR.formatErrorMsg(s), ErrorCode.ERR_BAD_DB_ERROR));
}
+
+ @Override
+ public List<Long> getDbIds() {
+ return Lists.newArrayList(dbNameToId.values());
+ }
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalDataSource.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalDataSource.java
index fccf262082..1a76da5a76 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalDataSource.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalDataSource.java
@@ -99,6 +99,7 @@ import org.apache.doris.catalog.Replica.ReplicaState;
import org.apache.doris.catalog.ReplicaAllocation;
import org.apache.doris.catalog.SinglePartitionInfo;
import org.apache.doris.catalog.Table;
+import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.TableIf.TableType;
import org.apache.doris.catalog.TableIndexes;
import org.apache.doris.catalog.Tablet;
@@ -197,8 +198,8 @@ import java.util.function.Function;
* Such as Database, tables, etc.
* There is only one internal data source in a cluster. And its id is always 0.
*/
-public class InternalDataSource implements DataSourceIf {
- public static final String INTERNAL_DS_NAME = "__internal";
+public class InternalDataSource implements DataSourceIf<Database> {
+ public static final String INTERNAL_DS_NAME = "internal_catalog";
public static final long INTERNAL_DS_ID = 0L;
private static final Logger LOG = LogManager.getLogger(InternalDataSource.class);
@@ -217,7 +218,7 @@ public class InternalDataSource implements DataSourceIf {
@Override
public long getId() {
- return 0;
+ return INTERNAL_DS_ID;
}
@Override
@@ -238,7 +239,7 @@ public class InternalDataSource implements DataSourceIf {
@Nullable
@Override
- public DatabaseIf getDbNullable(String dbName) {
+ public Database getDbNullable(String dbName) {
if (fullNameToDb.containsKey(dbName)) {
return fullNameToDb.get(dbName);
} else {
@@ -258,23 +259,23 @@ public class InternalDataSource implements DataSourceIf {
@Nullable
@Override
- public DatabaseIf getDbNullable(long dbId) {
+ public Database getDbNullable(long dbId) {
return idToDb.get(dbId);
}
@Override
- public Optional<DatabaseIf> getDb(String dbName) {
+ public Optional<Database> getDb(String dbName) {
return Optional.ofNullable(getDbNullable(dbName));
}
@Override
- public Optional<DatabaseIf> getDb(long dbId) {
+ public Optional<Database> getDb(long dbId) {
return Optional.ofNullable(getDbNullable(dbId));
}
@Override
- public <E extends Exception> DatabaseIf getDbOrException(String dbName, Function<String, E> e) throws E {
- DatabaseIf db = getDbNullable(dbName);
+ public <E extends Exception> Database getDbOrException(String dbName, Function<String, E> e) throws E {
+ Database db = getDbNullable(dbName);
if (db == null) {
throw e.apply(dbName);
}
@@ -282,8 +283,8 @@ public class InternalDataSource implements DataSourceIf {
}
@Override
- public <E extends Exception> DatabaseIf getDbOrException(long dbId, Function<Long, E> e) throws E {
- DatabaseIf db = getDbNullable(dbId);
+ public <E extends Exception> Database getDbOrException(long dbId, Function<Long, E> e) throws E {
+ Database db = getDbNullable(dbId);
if (db == null) {
throw e.apply(dbId);
}
@@ -291,37 +292,37 @@ public class InternalDataSource implements DataSourceIf {
}
@Override
- public DatabaseIf getDbOrMetaException(String dbName) throws MetaNotFoundException {
+ public Database getDbOrMetaException(String dbName) throws MetaNotFoundException {
return getDbOrException(dbName,
s -> new MetaNotFoundException("unknown databases, dbName=" + s, ErrorCode.ERR_BAD_DB_ERROR));
}
@Override
- public DatabaseIf getDbOrMetaException(long dbId) throws MetaNotFoundException {
+ public Database getDbOrMetaException(long dbId) throws MetaNotFoundException {
return getDbOrException(dbId,
s -> new MetaNotFoundException("unknown databases, dbId=" + s, ErrorCode.ERR_BAD_DB_ERROR));
}
@Override
- public DatabaseIf getDbOrDdlException(String dbName) throws DdlException {
+ public Database getDbOrDdlException(String dbName) throws DdlException {
return getDbOrException(dbName,
s -> new DdlException(ErrorCode.ERR_BAD_DB_ERROR.formatErrorMsg(s), ErrorCode.ERR_BAD_DB_ERROR));
}
@Override
- public DatabaseIf getDbOrDdlException(long dbId) throws DdlException {
+ public Database getDbOrDdlException(long dbId) throws DdlException {
return getDbOrException(dbId,
s -> new DdlException(ErrorCode.ERR_BAD_DB_ERROR.formatErrorMsg(s), ErrorCode.ERR_BAD_DB_ERROR));
}
@Override
- public DatabaseIf getDbOrAnalysisException(String dbName) throws AnalysisException {
+ public Database getDbOrAnalysisException(String dbName) throws AnalysisException {
return getDbOrException(dbName,
s -> new AnalysisException(ErrorCode.ERR_BAD_DB_ERROR.formatErrorMsg(s), ErrorCode.ERR_BAD_DB_ERROR));
}
@Override
- public DatabaseIf getDbOrAnalysisException(long dbId) throws AnalysisException {
+ public Database getDbOrAnalysisException(long dbId) throws AnalysisException {
return getDbOrException(dbId,
s -> new AnalysisException(ErrorCode.ERR_BAD_DB_ERROR.formatErrorMsg(s), ErrorCode.ERR_BAD_DB_ERROR));
}
@@ -1124,8 +1125,8 @@ public class InternalDataSource implements DataSourceIf {
public void createTableLike(CreateTableLikeStmt stmt) throws DdlException {
try {
- Database db = Catalog.getCurrentCatalog().getDbOrDdlException(stmt.getExistedDbName());
- Table table = db.getTableOrDdlException(stmt.getExistedTableName());
+ DatabaseIf db = getDbOrDdlException(stmt.getExistedDbName());
+ TableIf table = db.getTableOrDdlException(stmt.getExistedTableName());
if (table.getType() == TableType.VIEW) {
throw new DdlException("Not support create table from a View");
@@ -3097,7 +3098,7 @@ public class InternalDataSource implements DataSourceIf {
String dbName = InfoSchemaDb.getFullInfoSchemaDbName(cluster.getName());
// Use real Catalog instance to avoid InfoSchemaDb id continuously increment
// when checkpoint thread load image.
- InfoSchemaDb db = (InfoSchemaDb) Catalog.getServingCatalog().getDbNullable(dbName);
+ InfoSchemaDb db = (InfoSchemaDb) Catalog.getServingCatalog().getInternalDataSource().getDbNullable(dbName);
if (db == null) {
db = new InfoSchemaDb(cluster.getName());
db.setClusterName(cluster.getName());
diff --git a/fe/fe-core/src/main/java/org/apache/doris/external/elasticsearch/EsRepository.java b/fe/fe-core/src/main/java/org/apache/doris/external/elasticsearch/EsRepository.java
index 2671485272..95f54dceb7 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/external/elasticsearch/EsRepository.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/external/elasticsearch/EsRepository.java
@@ -90,9 +90,9 @@ public class EsRepository extends MasterDaemon {
if (Catalog.isCheckpointThread()) {
return;
}
- List<Long> dbIds = Catalog.getCurrentCatalog().getDbIds();
+ List<Long> dbIds = Catalog.getCurrentCatalog().getInternalDataSource().getDbIds();
for (Long dbId : dbIds) {
- Database database = Catalog.getCurrentCatalog().getDbNullable(dbId);
+ Database database = Catalog.getCurrentInternalCatalog().getDbNullable(dbId);
if (database == null) {
continue;
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/external/iceberg/IcebergTableCreationRecordMgr.java b/fe/fe-core/src/main/java/org/apache/doris/external/iceberg/IcebergTableCreationRecordMgr.java
index e726ef9fa3..33ec03143d 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/external/iceberg/IcebergTableCreationRecordMgr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/external/iceberg/IcebergTableCreationRecordMgr.java
@@ -116,7 +116,7 @@ public class IcebergTableCreationRecordMgr extends MasterDaemon {
// remove already created tables or failed tables
private void removeDuplicateTables() {
for (Map.Entry<Long, Map<Long, IcebergTableCreationRecord>> entry : dbToTableToCreationRecord.entrySet()) {
- Catalog.getCurrentCatalog().getDb(entry.getKey()).ifPresent(db -> {
+ Catalog.getCurrentInternalCatalog().getDb(entry.getKey()).ifPresent(db -> {
if (dbToTableIdentifiers.containsKey(db)) {
for (Map.Entry<Long, IcebergTableCreationRecord> innerEntry : entry.getValue().entrySet()) {
String tableName = innerEntry.getValue().getTable();
diff --git a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/CancelLoadAction.java b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/CancelLoadAction.java
index 63c2a88aa4..af5db711fe 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/CancelLoadAction.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/CancelLoadAction.java
@@ -65,7 +65,7 @@ public class CancelLoadAction extends RestBaseController {
Database db;
try {
- db = Catalog.getCurrentCatalog().getDbOrMetaException(fullDbName);
+ db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(fullDbName);
} catch (MetaNotFoundException e) {
return ResponseEntityBuilder.okWithCommonError(e.getMessage());
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/GetDdlStmtAction.java b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/GetDdlStmtAction.java
index 601adfd60e..c26eaba334 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/GetDdlStmtAction.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/GetDdlStmtAction.java
@@ -64,7 +64,7 @@ public class GetDdlStmtAction extends RestBaseController {
String fullDbName = getFullDbName(dbName);
Table table;
try {
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException(fullDbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(fullDbName);
table = db.getTableOrMetaException(tableName, Table.TableType.OLAP);
} catch (MetaNotFoundException e) {
return ResponseEntityBuilder.okWithCommonError(e.getMessage());
diff --git a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/GetStreamLoadState.java b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/GetStreamLoadState.java
index 8041d0a18f..e0f0702816 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/GetStreamLoadState.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/GetStreamLoadState.java
@@ -54,7 +54,7 @@ public class GetStreamLoadState extends RestBaseController {
Database db;
try {
- db = Catalog.getCurrentCatalog().getDbOrMetaException(fullDbName);
+ db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(fullDbName);
} catch (MetaNotFoundException e) {
return ResponseEntityBuilder.okWithCommonError(e.getMessage());
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/MetaInfoAction.java b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/MetaInfoAction.java
index 1e4d4e686e..6f3bbbce5c 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/MetaInfoAction.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/MetaInfoAction.java
@@ -22,7 +22,6 @@ import org.apache.doris.catalog.Database;
import org.apache.doris.catalog.OlapTable;
import org.apache.doris.catalog.Table;
import org.apache.doris.cluster.ClusterNamespace;
-import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.DdlException;
import org.apache.doris.common.FeConstants;
import org.apache.doris.common.MetaNotFoundException;
@@ -92,12 +91,7 @@ public class MetaInfoAction extends RestBaseController {
}
// 1. get all database with privilege
- List<String> dbNames = null;
- try {
- dbNames = Catalog.getCurrentCatalog().getClusterDbNames(ns);
- } catch (AnalysisException e) {
- return ResponseEntityBuilder.okWithCommonError("namespace does not exist: " + ns);
- }
+ List<String> dbNames = Catalog.getCurrentCatalog().getCurrentDataSource().getDbNames();
List<String> dbNameSet = Lists.newArrayList();
for (String fullName : dbNames) {
final String db = ClusterNamespace.getNameFromFullName(fullName);
@@ -142,7 +136,7 @@ public class MetaInfoAction extends RestBaseController {
String fullDbName = getFullDbName(dbName);
Database db;
try {
- db = Catalog.getCurrentCatalog().getDbOrMetaException(fullDbName);
+ db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(fullDbName);
} catch (MetaNotFoundException e) {
return ResponseEntityBuilder.okWithCommonError(e.getMessage());
}
@@ -225,7 +219,7 @@ public class MetaInfoAction extends RestBaseController {
Database db;
Table tbl;
try {
- db = Catalog.getCurrentCatalog().getDbOrMetaException(fullDbName);
+ db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(fullDbName);
tbl = db.getTableOrMetaException(tblName, Table.TableType.OLAP);
} catch (MetaNotFoundException e) {
return ResponseEntityBuilder.okWithCommonError(e.getMessage());
diff --git a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/RowCountAction.java b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/RowCountAction.java
index 75510386fd..934dade5f6 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/RowCountAction.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/RowCountAction.java
@@ -67,7 +67,7 @@ public class RowCountAction extends RestBaseController {
Map<String, Long> indexRowCountMap = Maps.newHashMap();
OlapTable olapTable;
try {
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException(fullDbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(fullDbName);
olapTable = (OlapTable) db.getTableOrMetaException(tableName, Table.TableType.OLAP);
} catch (MetaNotFoundException e) {
return ResponseEntityBuilder.okWithCommonError(e.getMessage());
diff --git a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/ShowAction.java b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/ShowAction.java
index d358df47f2..00800ffceb 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/ShowAction.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/ShowAction.java
@@ -19,6 +19,7 @@ package org.apache.doris.httpv2.rest;
import org.apache.doris.catalog.Catalog;
import org.apache.doris.catalog.Database;
+import org.apache.doris.catalog.DatabaseIf;
import org.apache.doris.catalog.OlapTable;
import org.apache.doris.catalog.Table;
import org.apache.doris.catalog.TableIf.TableType;
@@ -170,16 +171,16 @@ public class ShowAction extends RestBaseController {
long totalSize = 0;
if (dbName != null) {
String fullDbName = getFullDbName(dbName);
- Database db = Catalog.getCurrentCatalog().getDbNullable(fullDbName);
+ DatabaseIf db = Catalog.getCurrentInternalCatalog().getDbNullable(fullDbName);
if (db == null) {
return ResponseEntityBuilder.okWithCommonError("database " + fullDbName + " not found.");
}
totalSize = getDataSizeOfDatabase(db);
oneEntry.put(fullDbName, totalSize);
} else {
- for (long dbId : Catalog.getCurrentCatalog().getDbIds()) {
- Database db = Catalog.getCurrentCatalog().getDbNullable(dbId);
- if (db == null && db.isInfoSchemaDb()) {
+ for (long dbId : Catalog.getCurrentInternalCatalog().getDbIds()) {
+ DatabaseIf db = Catalog.getCurrentInternalCatalog().getDbNullable(dbId);
+ if (db == null || !(db instanceof Database) || ((Database) db).isInfoSchemaDb()) {
continue;
}
totalSize += getDataSizeOfDatabase(db);
@@ -246,7 +247,7 @@ public class ShowAction extends RestBaseController {
return feInfo;
}
- public long getDataSizeOfDatabase(Database db) {
+ public long getDataSizeOfDatabase(DatabaseIf db) {
long totalSize = 0;
db.readLock();
try {
@@ -272,10 +273,10 @@ public class ShowAction extends RestBaseController {
private Map<String, Long> getDataSize() {
Map<String, Long> result = new HashMap<String, Long>();
- List<String> dbNames = Catalog.getCurrentCatalog().getDbNames();
+ List<String> dbNames = Catalog.getCurrentInternalCatalog().getDbNames();
for (String dbName : dbNames) {
- Catalog.getCurrentCatalog().getDb(dbName).ifPresent(db -> {
+ Catalog.getCurrentInternalCatalog().getDb(dbName).ifPresent(db -> {
long totalSize = getDataSizeOfDatabase(db);
result.put(dbName, totalSize);
});
diff --git a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/StorageTypeCheckAction.java b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/StorageTypeCheckAction.java
index efcf005a21..7331923917 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/StorageTypeCheckAction.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/StorageTypeCheckAction.java
@@ -56,7 +56,7 @@ public class StorageTypeCheckAction extends RestBaseController {
String fullDbName = getFullDbName(dbName);
Database db;
try {
- db = Catalog.getCurrentCatalog().getDbOrMetaException(fullDbName);
+ db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(fullDbName);
} catch (MetaNotFoundException e) {
return ResponseEntityBuilder.okWithCommonError(e.getMessage());
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/TableQueryPlanAction.java b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/TableQueryPlanAction.java
index 61ca6bc947..ceccd41ff6 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/TableQueryPlanAction.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/TableQueryPlanAction.java
@@ -111,7 +111,7 @@ public class TableQueryPlanAction extends RestBaseController {
checkTblAuth(ConnectContext.get().getCurrentUserIdentity(), fullDbName, tblName, PrivPredicate.SELECT);
Table table;
try {
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException(fullDbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(fullDbName);
table = db.getTableOrMetaException(tblName, Table.TableType.OLAP);
} catch (MetaNotFoundException e) {
return ResponseEntityBuilder.okWithCommonError(e.getMessage());
diff --git a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/TableRowCountAction.java b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/TableRowCountAction.java
index c67983cf92..55b98c595e 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/TableRowCountAction.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/TableRowCountAction.java
@@ -62,7 +62,7 @@ public class TableRowCountAction extends RestBaseController {
checkTblAuth(ConnectContext.get().getCurrentUserIdentity(), fullDbName, tblName, PrivPredicate.SELECT);
OlapTable olapTable;
try {
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException(fullDbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(fullDbName);
olapTable = (OlapTable) db.getTableOrMetaException(tblName, Table.TableType.OLAP);
} catch (MetaNotFoundException e) {
return ResponseEntityBuilder.okWithCommonError(e.getMessage());
diff --git a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/TableSchemaAction.java b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/TableSchemaAction.java
index 94f6c8e578..beeca5739c 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/TableSchemaAction.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/TableSchemaAction.java
@@ -65,7 +65,7 @@ public class TableSchemaAction extends RestBaseController {
checkTblAuth(ConnectContext.get().getCurrentUserIdentity(), fullDbName, tblName, PrivPredicate.SELECT);
OlapTable table;
try {
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException(fullDbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(fullDbName);
table = (OlapTable) db.getTableOrMetaException(tblName, Table.TableType.OLAP);
} catch (MetaNotFoundException e) {
return ResponseEntityBuilder.okWithCommonError(e.getMessage());
diff --git a/fe/fe-core/src/main/java/org/apache/doris/httpv2/restv2/MetaInfoActionV2.java b/fe/fe-core/src/main/java/org/apache/doris/httpv2/restv2/MetaInfoActionV2.java
index 811cae6b5e..a122ca335d 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/httpv2/restv2/MetaInfoActionV2.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/httpv2/restv2/MetaInfoActionV2.java
@@ -92,7 +92,7 @@ public class MetaInfoActionV2 extends RestBaseController {
// 1. get all database with privilege
List<String> dbNames = null;
try {
- dbNames = Catalog.getCurrentCatalog().getClusterDbNames(ns);
+ dbNames = Catalog.getCurrentInternalCatalog().getClusterDbNames(ns);
} catch (AnalysisException e) {
return ResponseEntityBuilder.okWithCommonError("namespace does not exist: " + ns);
}
@@ -139,7 +139,7 @@ public class MetaInfoActionV2 extends RestBaseController {
String fullDbName = getFullDbName(dbName);
Database db;
try {
- db = Catalog.getCurrentCatalog().getDbOrMetaException(fullDbName);
+ db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(fullDbName);
} catch (MetaNotFoundException e) {
return ResponseEntityBuilder.okWithCommonError(e.getMessage());
}
@@ -211,7 +211,7 @@ public class MetaInfoActionV2 extends RestBaseController {
boolean withMv = !Strings.isNullOrEmpty(withMvPara) && withMvPara.equals("1");
try {
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException(fullDbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(fullDbName);
db.readLock();
try {
Table tbl = db.getTableOrMetaException(tblName, Table.TableType.OLAP);
diff --git a/fe/fe-core/src/main/java/org/apache/doris/httpv2/restv2/StatisticAction.java b/fe/fe-core/src/main/java/org/apache/doris/httpv2/restv2/StatisticAction.java
index 3b8b7f7353..0da2d8ca32 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/httpv2/restv2/StatisticAction.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/httpv2/restv2/StatisticAction.java
@@ -18,6 +18,7 @@
package org.apache.doris.httpv2.restv2;
import org.apache.doris.catalog.Catalog;
+import org.apache.doris.datasource.InternalDataSource;
import org.apache.doris.httpv2.entity.ResponseEntityBuilder;
import org.apache.doris.httpv2.rest.RestBaseController;
import org.apache.doris.system.Backend;
@@ -51,7 +52,7 @@ public class StatisticAction extends RestBaseController {
Catalog catalog = Catalog.getCurrentCatalog();
SystemInfoService infoService = Catalog.getCurrentSystemInfo();
- resultMap.put("dbCount", catalog.getDbIds().size());
+ resultMap.put("dbCount", catalog.getInternalDataSource().getDbIds().size());
resultMap.put("tblCount", getTblCount(catalog));
resultMap.put("diskOccupancy", getDiskOccupancy(infoService));
resultMap.put("beCount", infoService.getClusterBackendIds(SystemInfoService.DEFAULT_CLUSTER).size());
@@ -62,8 +63,9 @@ public class StatisticAction extends RestBaseController {
}
private int getTblCount(Catalog catalog) {
- return catalog.getDbIds().stream().map(catalog::getDbNullable).filter(Objects::nonNull)
- .map(db -> db.getTables().size()).reduce(Integer::sum).orElse(0);
+ InternalDataSource ds = catalog.getInternalDataSource();
+ return ds.getDbIds().stream().map(ds::getDbNullable).filter(Objects::nonNull).map(db -> db.getTables().size())
+ .reduce(Integer::sum).orElse(0);
}
private long getDiskOccupancy(SystemInfoService infoService) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/DeleteHandler.java b/fe/fe-core/src/main/java/org/apache/doris/load/DeleteHandler.java
index d25bc8b2b3..ce080b8870 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/DeleteHandler.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/DeleteHandler.java
@@ -145,7 +145,7 @@ public class DeleteHandler implements Writable {
List<String> partitionNames = stmt.getPartitionNames();
boolean noPartitionSpecified = partitionNames.isEmpty();
List<Predicate> conditions = stmt.getDeleteConditions();
- Database db = Catalog.getCurrentCatalog().getDbOrDdlException(dbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrDdlException(dbName);
DeleteJob deleteJob = null;
try {
@@ -692,7 +692,7 @@ public class DeleteHandler implements Writable {
// show delete stmt
public List<List<Comparable>> getDeleteInfosByDb(long dbId) {
LinkedList<List<Comparable>> infos = new LinkedList<List<Comparable>>();
- Database db = Catalog.getCurrentCatalog().getDbNullable(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable(dbId);
if (db == null) {
return infos;
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/DeleteJob.java b/fe/fe-core/src/main/java/org/apache/doris/load/DeleteJob.java
index c53b731025..874e4e7753 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/DeleteJob.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/DeleteJob.java
@@ -85,7 +85,7 @@ public class DeleteJob extends AbstractTxnStateChangeCallback {
*/
public void checkAndUpdateQuorum() throws MetaNotFoundException {
long dbId = deleteInfo.getDbId();
- Catalog.getCurrentCatalog().getDbOrMetaException(dbId);
+ Catalog.getCurrentInternalCatalog().getDbOrMetaException(dbId);
for (TabletDeleteInfo tDeleteInfo : getTabletDeleteInfo()) {
Short replicaNum = partitionReplicaNum.get(tDeleteInfo.getPartitionId());
diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/ExportJob.java b/fe/fe-core/src/main/java/org/apache/doris/load/ExportJob.java
index 2c72befa63..9559c0f80c 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/ExportJob.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/ExportJob.java
@@ -197,7 +197,7 @@ public class ExportJob implements Writable {
public void setJob(ExportStmt stmt) throws UserException {
String dbName = stmt.getTblName().getDb();
- Database db = Catalog.getCurrentCatalog().getDbOrDdlException(dbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrDdlException(dbName);
Preconditions.checkNotNull(stmt.getBrokerDesc());
this.brokerDesc = stmt.getBrokerDesc();
diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/ExportMgr.java b/fe/fe-core/src/main/java/org/apache/doris/load/ExportMgr.java
index 32c2fcf552..1d7c581199 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/ExportMgr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/ExportMgr.java
@@ -168,7 +168,7 @@ public class ExportMgr {
TableName tableName = job.getTableName();
if (tableName == null || tableName.getTbl().equals("DUMMY")) {
// forward compatibility, no table name is saved before
- Database db = Catalog.getCurrentCatalog().getDbNullable(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable(dbId);
if (db == null) {
continue;
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/Load.java b/fe/fe-core/src/main/java/org/apache/doris/load/Load.java
index 97ba9e20db..f6b85a0ebe 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/Load.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/Load.java
@@ -367,7 +367,7 @@ public class Load {
public void addLoadJob(LoadStmt stmt, EtlJobType etlJobType, long timestamp) throws DdlException {
// get db
String dbName = stmt.getLabel().getDbName();
- Database db = Catalog.getCurrentCatalog().getDbOrDdlException(dbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrDdlException(dbName);
// create job
LoadJob job = createLoadJob(stmt, etlJobType, db, timestamp);
@@ -1607,7 +1607,7 @@ public class Load {
// return true if we truly register a mini load label
// return false otherwise (eg: a retry request)
public boolean registerMiniLabel(String fullDbName, String label, long timestamp) throws DdlException {
- Database db = Catalog.getCurrentCatalog().getDbOrDdlException(fullDbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrDdlException(fullDbName);
long dbId = db.getId();
writeLock();
@@ -1634,7 +1634,7 @@ public class Load {
}
public void deregisterMiniLabel(String fullDbName, String label) throws DdlException {
- Database db = Catalog.getCurrentCatalog().getDbOrDdlException(fullDbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrDdlException(fullDbName);
long dbId = db.getId();
writeLock();
@@ -2078,7 +2078,7 @@ public class Load {
}
long dbId = loadJob.getDbId();
- Database db = Catalog.getCurrentCatalog().getDbNullable(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable(dbId);
if (db == null) {
return infos;
}
@@ -2250,7 +2250,7 @@ public class Load {
public void getJobInfo(JobInfo info) throws DdlException, MetaNotFoundException {
String fullDbName = ClusterNamespace.getFullName(info.clusterName, info.dbName);
info.dbName = fullDbName;
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException(fullDbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(fullDbName);
readLock();
try {
Map<String, List<LoadJob>> labelToLoadJobs = dbLabelToLoadJobs.get(db.getId());
@@ -2367,7 +2367,7 @@ public class Load {
public void replayQuorumLoadJob(LoadJob job, Catalog catalog) throws MetaNotFoundException {
// TODO: need to call this.writeLock()?
- Database db = catalog.getDbOrMetaException(job.getDbId());
+ Database db = catalog.getInternalDataSource().getDbOrMetaException(job.getDbId());
List<Long> tableIds = Lists.newArrayList();
long tblId = job.getTableId();
@@ -2445,7 +2445,7 @@ public class Load {
public void replayFinishLoadJob(LoadJob job, Catalog catalog) throws MetaNotFoundException {
// TODO: need to call this.writeLock()?
- Database db = catalog.getDbOrMetaException(job.getDbId());
+ Database db = catalog.getCurrentInternalCatalog().getDbOrMetaException(job.getDbId());
// After finish, the idToTableLoadInfo in load job will be set to null.
// We lost table info. So we have to use db lock here.
db.writeLock();
@@ -2462,7 +2462,7 @@ public class Load {
}
public void replayClearRollupInfo(ReplicaPersistInfo info, Catalog catalog) throws MetaNotFoundException {
- Database db = catalog.getDbOrMetaException(info.getDbId());
+ Database db = catalog.getInternalDataSource().getDbOrMetaException(info.getDbId());
OlapTable olapTable = (OlapTable) db.getTableOrMetaException(info.getTableId(), TableType.OLAP);
olapTable.writeLock();
try {
@@ -2650,7 +2650,7 @@ public class Load {
}
long dbId = job.getDbId();
- Database db = Catalog.getCurrentCatalog().getDbNullable(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable(dbId);
if (db == null) {
LOG.warn("db does not exist. id: {}", dbId);
break;
@@ -2683,7 +2683,7 @@ public class Load {
long jobId = job.getId();
long dbId = job.getDbId();
- Database db = Catalog.getCurrentCatalog().getDbNullable(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable(dbId);
String errMsg = msg;
if (db == null) {
// if db is null, update job to cancelled
diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/LoadChecker.java b/fe/fe-core/src/main/java/org/apache/doris/load/LoadChecker.java
index f829e31e01..0faf356029 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/LoadChecker.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/LoadChecker.java
@@ -229,7 +229,7 @@ public class LoadChecker extends MasterDaemon {
Load load = Catalog.getCurrentCatalog().getLoadInstance();
// get db
long dbId = job.getDbId();
- Database db = Catalog.getCurrentCatalog().getDbNullable(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable(dbId);
if (db == null) {
load.cancelLoadJob(job, CancelType.LOAD_RUN_FAIL, "db does not exist. id: " + dbId);
return;
@@ -532,7 +532,7 @@ public class LoadChecker extends MasterDaemon {
// if db is null, cancel load job
Load load = Catalog.getCurrentCatalog().getLoadInstance();
long dbId = job.getDbId();
- Database db = Catalog.getCurrentCatalog().getDbNullable(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable(dbId);
if (db == null) {
load.cancelLoadJob(job, CancelType.LOAD_RUN_FAIL, "db does not exist. id: " + dbId);
return;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/StreamLoadRecordMgr.java b/fe/fe-core/src/main/java/org/apache/doris/load/StreamLoadRecordMgr.java
index f5edc57077..63132c1948 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/StreamLoadRecordMgr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/StreamLoadRecordMgr.java
@@ -301,7 +301,7 @@ public class StreamLoadRecordMgr extends MasterDaemon {
}
String fullDbName = ClusterNamespace.getFullName(cluster, streamLoadItem.getDb());
- Database db = Catalog.getCurrentCatalog().getDbNullable(fullDbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable(fullDbName);
if (db == null) {
String dbName = fullDbName;
if (Strings.isNullOrEmpty(streamLoadItem.getCluster())) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/BulkLoadJob.java b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/BulkLoadJob.java
index 6f4ad21fc1..49165bd59e 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/BulkLoadJob.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/BulkLoadJob.java
@@ -27,6 +27,7 @@ import org.apache.doris.catalog.AuthorizationInfo;
import org.apache.doris.catalog.Catalog;
import org.apache.doris.catalog.Database;
import org.apache.doris.catalog.Table;
+import org.apache.doris.catalog.TableIf;
import org.apache.doris.common.DdlException;
import org.apache.doris.common.MetaNotFoundException;
import org.apache.doris.common.io.Text;
@@ -110,19 +111,19 @@ public abstract class BulkLoadJob extends LoadJob {
public static BulkLoadJob fromLoadStmt(LoadStmt stmt) throws DdlException {
// get db id
String dbName = stmt.getLabel().getDbName();
- Database db = Catalog.getCurrentCatalog().getDbOrDdlException(dbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrDdlException(dbName);
// create job
BulkLoadJob bulkLoadJob;
try {
switch (stmt.getEtlJobType()) {
case BROKER:
- bulkLoadJob = new BrokerLoadJob(db.getId(), stmt.getLabel().getLabelName(),
- stmt.getBrokerDesc(), stmt.getOrigStmt(), stmt.getUserInfo());
+ bulkLoadJob = new BrokerLoadJob(db.getId(), stmt.getLabel().getLabelName(), stmt.getBrokerDesc(),
+ stmt.getOrigStmt(), stmt.getUserInfo());
break;
case SPARK:
- bulkLoadJob = new SparkLoadJob(db.getId(), stmt.getLabel().getLabelName(),
- stmt.getResourceDesc(), stmt.getOrigStmt(), stmt.getUserInfo());
+ bulkLoadJob = new SparkLoadJob(db.getId(), stmt.getLabel().getLabelName(), stmt.getResourceDesc(),
+ stmt.getOrigStmt(), stmt.getUserInfo());
break;
case MINI:
case DELETE:
@@ -133,7 +134,7 @@ public abstract class BulkLoadJob extends LoadJob {
throw new DdlException("Unknown load job type.");
}
bulkLoadJob.setJobProperties(stmt.getProperties());
- bulkLoadJob.checkAndSetDataSourceInfo(db, stmt.getDataDescriptions());
+ bulkLoadJob.checkAndSetDataSourceInfo((Database) db, stmt.getDataDescriptions());
return bulkLoadJob;
} catch (MetaNotFoundException e) {
throw new DdlException(e.getMessage());
@@ -162,23 +163,23 @@ public abstract class BulkLoadJob extends LoadJob {
}
private AuthorizationInfo gatherAuthInfo() throws MetaNotFoundException {
- Database database = Catalog.getCurrentCatalog().getDbOrMetaException(dbId);
+ Database database = Catalog.getCurrentInternalCatalog().getDbOrMetaException(dbId);
return new AuthorizationInfo(database.getFullName(), getTableNames());
}
@Override
public Set<String> getTableNamesForShow() {
- Optional<Database> db = Catalog.getCurrentCatalog().getDb(dbId);
+ Optional<Database> db = Catalog.getCurrentInternalCatalog().getDb(dbId);
return fileGroupAggInfo.getAllTableIds().stream()
- .map(tableId -> db.flatMap(d -> d.getTable(tableId))
- .map(Table::getName).orElse(String.valueOf(tableId)))
+ .map(tableId -> db.flatMap(d -> d.getTable(tableId)).map(TableIf::getName)
+ .orElse(String.valueOf(tableId)))
.collect(Collectors.toSet());
}
@Override
public Set<String> getTableNames() throws MetaNotFoundException {
Set<String> result = Sets.newHashSet();
- Database database = Catalog.getCurrentCatalog().getDbOrMetaException(dbId);
+ Database database = Catalog.getCurrentInternalCatalog().getDbOrMetaException(dbId);
// The database will not be locked in here.
// The getTable is a thread-safe method called without read lock of database
for (long tableId : fileGroupAggInfo.getAllTableIds()) {
@@ -259,7 +260,7 @@ public abstract class BulkLoadJob extends LoadJob {
Long.valueOf(sessionVariables.get(SessionVariable.SQL_MODE))));
LoadStmt stmt;
try {
- Database db = Catalog.getCurrentCatalog().getDbOrDdlException(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrDdlException(dbId);
stmt = (LoadStmt) SqlParserUtils.getStmt(parser, originStmt.idx);
for (DataDescription dataDescription : stmt.getDataDescriptions()) {
dataDescription.analyzeWithoutCheckPriv(db.getFullName());
diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/InsertLoadJob.java b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/InsertLoadJob.java
index d638c0d9d6..65a4dad027 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/InsertLoadJob.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/InsertLoadJob.java
@@ -21,6 +21,7 @@ import org.apache.doris.catalog.AuthorizationInfo;
import org.apache.doris.catalog.Catalog;
import org.apache.doris.catalog.Database;
import org.apache.doris.catalog.Table;
+import org.apache.doris.catalog.TableIf;
import org.apache.doris.common.MetaNotFoundException;
import org.apache.doris.load.EtlJobType;
import org.apache.doris.load.FailMsg;
@@ -69,20 +70,20 @@ public class InsertLoadJob extends LoadJob {
}
public AuthorizationInfo gatherAuthInfo() throws MetaNotFoundException {
- Database database = Catalog.getCurrentCatalog().getDbOrMetaException(dbId);
+ Database database = Catalog.getCurrentInternalCatalog().getDbOrMetaException(dbId);
return new AuthorizationInfo(database.getFullName(), getTableNames());
}
@Override
public Set<String> getTableNamesForShow() {
- String name = Catalog.getCurrentCatalog().getDb(dbId).flatMap(db -> db.getTable(tableId))
- .map(Table::getName).orElse(String.valueOf(tableId));
+ String name = Catalog.getCurrentInternalCatalog().getDb(dbId).flatMap(db -> db.getTable(tableId))
+ .map(TableIf::getName).orElse(String.valueOf(tableId));
return Sets.newHashSet(name);
}
@Override
public Set<String> getTableNames() throws MetaNotFoundException {
- Database database = Catalog.getCurrentCatalog().getDbOrMetaException(dbId);
+ Database database = Catalog.getCurrentInternalCatalog().getDbOrMetaException(dbId);
Table table = database.getTableOrMetaException(tableId);
return Sets.newHashSet(table.getName());
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadJob.java b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadJob.java
index 845aa35ec3..4535c6851c 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadJob.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadJob.java
@@ -267,7 +267,7 @@ public abstract class LoadJob extends AbstractTxnStateChangeCallback implements
}
public Database getDb() throws MetaNotFoundException {
- return Catalog.getCurrentCatalog().getDbOrMetaException(dbId);
+ return Catalog.getCurrentInternalCatalog().getDbOrMetaException(dbId);
}
public long getDbId() {
@@ -595,7 +595,7 @@ public abstract class LoadJob extends AbstractTxnStateChangeCallback implements
* @throws DdlException
*/
private void checkAuthWithoutAuthInfo(String command) throws DdlException {
- Database db = Catalog.getCurrentCatalog().getDbOrDdlException(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrDdlException(dbId);
// check auth
try {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadManager.java b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadManager.java
index 5d54451ee8..17b7af2508 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadManager.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadManager.java
@@ -289,7 +289,7 @@ public class LoadManager implements Writable {
long createTimestamp, String failMsg, String trackingUrl) throws MetaNotFoundException {
// get db id
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException(dbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(dbName);
LoadJob loadJob;
switch (jobType) {
@@ -337,7 +337,7 @@ public class LoadManager implements Writable {
* Cancel load job by stmt.
**/
public void cancelLoadJob(CancelLoadStmt stmt) throws DdlException, AnalysisException {
- Database db = Catalog.getCurrentCatalog().getDbOrDdlException(stmt.getDbName());
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrDdlException(stmt.getDbName());
// List of load jobs waiting to be cancelled
List<LoadJob> matchLoadJobs = Lists.newArrayList();
readLock();
@@ -632,7 +632,7 @@ public class LoadManager implements Writable {
}
private Database checkDb(String dbName) throws DdlException {
- return Catalog.getCurrentCatalog().getDbOrDdlException(dbName);
+ return Catalog.getCurrentInternalCatalog().getDbOrDdlException(dbName);
}
/**
diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadingTaskPlanner.java b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadingTaskPlanner.java
index b91c839441..039abaa7d0 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadingTaskPlanner.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadingTaskPlanner.java
@@ -95,8 +95,9 @@ public class LoadingTaskPlanner {
this.loadParallelism = loadParallelism;
this.sendBatchParallelism = sendBatchParallelism;
this.userInfo = userInfo;
- if (Catalog.getCurrentCatalog().getAuth().checkDbPriv(userInfo,
- Catalog.getCurrentCatalog().getDbNullable(dbId).getFullName(), PrivPredicate.SELECT)) {
+ if (Catalog.getCurrentCatalog().getAuth()
+ .checkDbPriv(userInfo, Catalog.getCurrentInternalCatalog().getDbNullable(dbId).getFullName(),
+ PrivPredicate.SELECT)) {
this.analyzer.setUDFAllowed(true);
} else {
this.analyzer.setUDFAllowed(false);
diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/MiniLoadJob.java b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/MiniLoadJob.java
index 2c76672cd0..4c59ffdaea 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/MiniLoadJob.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/MiniLoadJob.java
@@ -82,7 +82,7 @@ public class MiniLoadJob extends LoadJob {
}
public AuthorizationInfo gatherAuthInfo() throws MetaNotFoundException {
- Database database = Catalog.getCurrentCatalog().getDbOrMetaException(dbId);
+ Database database = Catalog.getCurrentInternalCatalog().getDbOrMetaException(dbId);
return new AuthorizationInfo(database.getFullName(), getTableNames());
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/SparkLoadJob.java b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/SparkLoadJob.java
index 7b1397c859..b9ec64ea7f 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/SparkLoadJob.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/SparkLoadJob.java
@@ -40,6 +40,7 @@ import org.apache.doris.catalog.Resource;
import org.apache.doris.catalog.ScalarType;
import org.apache.doris.catalog.SparkResource;
import org.apache.doris.catalog.Table;
+import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.Tablet;
import org.apache.doris.catalog.Type;
import org.apache.doris.common.AnalysisException;
@@ -419,19 +420,16 @@ public class SparkLoadJob extends BulkLoadJob {
try {
db = getDb();
} catch (MetaNotFoundException e) {
- String errMsg = new LogBuilder(LogKey.LOAD_JOB, id)
- .add("database_id", dbId)
- .add("label", label)
- .add("error_msg", "db has been deleted when job is loading")
- .build();
+ String errMsg = new LogBuilder(LogKey.LOAD_JOB, id).add("database_id", dbId).add("label", label)
+ .add("error_msg", "db has been deleted when job is loading").build();
throw new MetaNotFoundException(errMsg);
}
AgentBatchTask batchTask = new AgentBatchTask();
boolean hasLoadPartitions = false;
Set<Long> totalTablets = Sets.newHashSet();
- List<Table> tableList = db.getTablesOnIdOrderOrThrowException(
- Lists.newArrayList(tableToLoadPartitions.keySet()));
+ List<? extends TableIf> tableList =
+ db.getTablesOnIdOrderOrThrowException(Lists.newArrayList(tableToLoadPartitions.keySet()));
MetaLockUtils.readLockTables(tableList);
try {
writeLock();
@@ -445,7 +443,7 @@ public class SparkLoadJob extends BulkLoadJob {
return totalTablets;
}
- for (Table table : tableList) {
+ for (TableIf table : tableList) {
Set<Long> partitionIds = tableToLoadPartitions.get(table.getId());
OlapTable olapTable = (OlapTable) table;
for (long partitionId : partitionIds) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/SparkLoadPendingTask.java b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/SparkLoadPendingTask.java
index 33590743ab..ad56376c03 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/SparkLoadPendingTask.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/SparkLoadPendingTask.java
@@ -131,8 +131,8 @@ public class SparkLoadPendingTask extends LoadTask {
}
private void createEtlJobConf() throws LoadException {
- Database db = Catalog.getCurrentCatalog().getDbOrException(
- dbId, s -> new LoadException("db does not exist. id: " + s));
+ Database db = Catalog.getCurrentInternalCatalog()
+ .getDbOrException(dbId, s -> new LoadException("db does not exist. id: " + s));
Map<Long, EtlTable> tables = Maps.newHashMap();
Map<Long, Set<Long>> tableIdToPartitionIds = Maps.newHashMap();
diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/routineload/KafkaRoutineLoadJob.java b/fe/fe-core/src/main/java/org/apache/doris/load/routineload/KafkaRoutineLoadJob.java
index f1401e5884..9b16af079a 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/routineload/KafkaRoutineLoadJob.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/routineload/KafkaRoutineLoadJob.java
@@ -385,7 +385,7 @@ public class KafkaRoutineLoadJob extends RoutineLoadJob {
public static KafkaRoutineLoadJob fromCreateStmt(CreateRoutineLoadStmt stmt) throws UserException {
// check db and table
- Database db = Catalog.getCurrentCatalog().getDbOrDdlException(stmt.getDBName());
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrDdlException(stmt.getDBName());
OlapTable olapTable = db.getOlapTableOrDdlException(stmt.getTableName());
checkMeta(olapTable, stmt.getRoutineLoadDesc());
long tableId = olapTable.getId();
diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/routineload/KafkaTaskInfo.java b/fe/fe-core/src/main/java/org/apache/doris/load/routineload/KafkaTaskInfo.java
index d522bd9ebe..5169bceb68 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/routineload/KafkaTaskInfo.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/routineload/KafkaTaskInfo.java
@@ -79,7 +79,8 @@ public class KafkaTaskInfo extends RoutineLoadTaskInfo {
tRoutineLoadTask.setId(queryId);
tRoutineLoadTask.setJobId(jobId);
tRoutineLoadTask.setTxnId(txnId);
- Database database = Catalog.getCurrentCatalog().getDbOrMetaException(routineLoadJob.getDbId());
+ Database database =
+ Catalog.getCurrentInternalCatalog().getDbOrMetaException(routineLoadJob.getDbId());
Table tbl = database.getTableOrMetaException(routineLoadJob.getTableId());
tRoutineLoadTask.setDb(database.getFullName());
tRoutineLoadTask.setTbl(tbl.getName());
diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/routineload/RoutineLoadJob.java b/fe/fe-core/src/main/java/org/apache/doris/load/routineload/RoutineLoadJob.java
index 940715c096..7ee83e36c9 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/routineload/RoutineLoadJob.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/routineload/RoutineLoadJob.java
@@ -405,7 +405,7 @@ public abstract class RoutineLoadJob extends AbstractTxnStateChangeCallback impl
}
public String getDbFullName() throws MetaNotFoundException {
- return Catalog.getCurrentCatalog().getDbOrMetaException(dbId).getFullName();
+ return Catalog.getCurrentInternalCatalog().getDbOrMetaException(dbId).getFullName();
}
public long getTableId() {
@@ -413,7 +413,7 @@ public abstract class RoutineLoadJob extends AbstractTxnStateChangeCallback impl
}
public String getTableName() throws MetaNotFoundException {
- Database database = Catalog.getCurrentCatalog().getDbOrMetaException(dbId);
+ Database database = Catalog.getCurrentInternalCatalog().getDbOrMetaException(dbId);
return database.getTableOrMetaException(tableId).getName();
}
@@ -785,14 +785,14 @@ public abstract class RoutineLoadJob extends AbstractTxnStateChangeCallback impl
}
private void initPlanner() throws UserException {
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(dbId);
planner = new StreamLoadPlanner(db,
(OlapTable) db.getTableOrMetaException(this.tableId, Table.TableType.OLAP), this);
}
public TExecPlanFragmentParams plan(TUniqueId loadId, long txnId) throws UserException {
Preconditions.checkNotNull(planner);
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(dbId);
Table table = db.getTableOrMetaException(tableId, Table.TableType.OLAP);
table.readLock();
try {
@@ -1204,7 +1204,7 @@ public abstract class RoutineLoadJob extends AbstractTxnStateChangeCallback impl
public void update() throws UserException {
// check if db and table exist
- Database database = Catalog.getCurrentCatalog().getDbNullable(dbId);
+ Database database = Catalog.getCurrentInternalCatalog().getDbNullable(dbId);
if (database == null) {
LOG.warn(new LogBuilder(LogKey.ROUTINE_LOAD_JOB, id)
.add("db_id", dbId)
@@ -1285,7 +1285,7 @@ public abstract class RoutineLoadJob extends AbstractTxnStateChangeCallback impl
protected abstract String getLag();
public List<String> getShowInfo() {
- Optional<Database> database = Catalog.getCurrentCatalog().getDb(dbId);
+ Optional<Database> database = Catalog.getCurrentInternalCatalog().getDb(dbId);
Optional<Table> table = database.flatMap(db -> db.getTable(tableId));
@@ -1341,7 +1341,7 @@ public abstract class RoutineLoadJob extends AbstractTxnStateChangeCallback impl
}
public String getShowCreateInfo() {
- Optional<Database> database = Catalog.getCurrentCatalog().getDb(dbId);
+ Optional<Database> database = Catalog.getCurrentInternalCatalog().getDb(dbId);
Optional<Table> table = database.flatMap(db -> db.getTable(tableId));
StringBuilder sb = new StringBuilder();
// 1.job_name
@@ -1434,7 +1434,7 @@ public abstract class RoutineLoadJob extends AbstractTxnStateChangeCallback impl
}
public List<String> getShowStatistic() {
- Optional<Database> database = Catalog.getCurrentCatalog().getDb(dbId);
+ Optional<Database> database = Catalog.getCurrentInternalCatalog().getDb(dbId);
List<String> row = Lists.newArrayList();
row.add(name);
diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/routineload/RoutineLoadManager.java b/fe/fe-core/src/main/java/org/apache/doris/load/routineload/RoutineLoadManager.java
index 24e1b19037..2136308e60 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/routineload/RoutineLoadManager.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/routineload/RoutineLoadManager.java
@@ -247,7 +247,7 @@ public class RoutineLoadManager implements Writable {
throws MetaNotFoundException, DdlException, AnalysisException {
List<RoutineLoadJob> result = Lists.newArrayList();
- Database database = Catalog.getCurrentCatalog().getDbOrDdlException(dbName);
+ Database database = Catalog.getCurrentInternalCatalog().getDbOrDdlException(dbName);
long dbId = database.getId();
Map<String, List<RoutineLoadJob>> jobMap = dbToNameToRoutineLoadJob.get(dbId);
if (jobMap == null) {
@@ -510,7 +510,7 @@ public class RoutineLoadManager implements Writable {
private Set<Tag> getTagsFromReplicaAllocation(long dbId, long tblId) throws LoadException {
try {
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(dbId);
OlapTable tbl = (OlapTable) db.getTableOrMetaException(tblId, Table.TableType.OLAP);
tbl.readLock();
try {
@@ -565,7 +565,7 @@ public class RoutineLoadManager implements Writable {
break RESULT;
}
- Database database = Catalog.getCurrentCatalog().getDbOrMetaException(dbFullName);
+ Database database = Catalog.getCurrentInternalCatalog().getDbOrMetaException(dbFullName);
long dbId = database.getId();
if (!dbToNameToRoutineLoadJob.containsKey(dbId)) {
result = new ArrayList<>();
diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/sync/SyncJob.java b/fe/fe-core/src/main/java/org/apache/doris/load/sync/SyncJob.java
index cf0094fa5d..fb80fc37ce 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/sync/SyncJob.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/sync/SyncJob.java
@@ -117,7 +117,7 @@ public abstract class SyncJob implements Writable {
public static SyncJob fromStmt(long jobId, CreateDataSyncJobStmt stmt) throws DdlException {
String dbName = stmt.getDbName();
- Database db = Catalog.getCurrentCatalog().getDbOrDdlException(dbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrDdlException(dbName);
SyncJob syncJob;
try {
switch (stmt.getDataSyncJobType()) {
@@ -207,7 +207,7 @@ public abstract class SyncJob implements Writable {
}
public void checkAndDoUpdate() throws UserException {
- Database database = Catalog.getCurrentCatalog().getDbNullable(dbId);
+ Database database = Catalog.getCurrentInternalCatalog().getDbNullable(dbId);
if (database == null) {
if (!isCompleted()) {
String msg = "The database has been deleted. Change job state to cancelled";
diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/sync/SyncJobManager.java b/fe/fe-core/src/main/java/org/apache/doris/load/sync/SyncJobManager.java
index d42821dfef..6575d7ed1b 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/sync/SyncJobManager.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/sync/SyncJobManager.java
@@ -111,7 +111,7 @@ public class SyncJobManager implements Writable {
String dbName = stmt.getDbFullName();
String jobName = stmt.getJobName();
- Database db = Catalog.getCurrentCatalog().getDbOrDdlException(dbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrDdlException(dbName);
List<SyncJob> syncJobs = Lists.newArrayList();
readLock();
@@ -142,7 +142,7 @@ public class SyncJobManager implements Writable {
String dbName = stmt.getDbFullName();
String jobName = stmt.getJobName();
- Database db = Catalog.getCurrentCatalog().getDbOrDdlException(dbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrDdlException(dbName);
List<SyncJob> syncJobs = Lists.newArrayList();
readLock();
@@ -173,7 +173,7 @@ public class SyncJobManager implements Writable {
String dbName = stmt.getDbFullName();
String jobName = stmt.getJobName();
- Database db = Catalog.getCurrentCatalog().getDbOrDdlException(dbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrDdlException(dbName);
// List of sync jobs waiting to be cancelled
List<SyncJob> syncJobs = Lists.newArrayList();
@@ -251,7 +251,7 @@ public class SyncJobManager implements Writable {
}
public boolean isJobNameExist(String dbName, String jobName) throws DdlException {
- Database db = Catalog.getCurrentCatalog().getDbOrDdlException(dbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrDdlException(dbName);
boolean result = false;
readLock();
try {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/sync/canal/CanalSyncJob.java b/fe/fe-core/src/main/java/org/apache/doris/load/sync/canal/CanalSyncJob.java
index 3b440f783e..c5a7b47cee 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/sync/canal/CanalSyncJob.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/sync/canal/CanalSyncJob.java
@@ -91,7 +91,7 @@ public class CanalSyncJob extends SyncJob {
if (channels == null) {
channels = Lists.newArrayList();
}
- Database db = Catalog.getCurrentCatalog().getDbOrDdlException(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrDdlException(dbId);
db.writeLock();
try {
for (ChannelDescription channelDescription : channelDescriptions) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/update/UpdateStmtExecutor.java b/fe/fe-core/src/main/java/org/apache/doris/load/update/UpdateStmtExecutor.java
index 400aab727b..deda7ed742 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/update/UpdateStmtExecutor.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/update/UpdateStmtExecutor.java
@@ -184,10 +184,8 @@ public class UpdateStmtExecutor {
try {
LOG.info("commit and publish transaction for update stmt, query id: {}", DebugUtil.printId(queryId));
isPublished = globalTransactionMgr.commitAndPublishTransaction(
- Catalog.getCurrentCatalog().getDbOrMetaException(dbId),
- Lists.newArrayList(targetTable),
- txnId,
- TabletCommitInfo.fromThrift(coordinator.getCommitInfos()),
+ Catalog.getCurrentInternalCatalog().getDbOrMetaException(dbId),
+ Lists.newArrayList(targetTable), txnId, TabletCommitInfo.fromThrift(coordinator.getCommitInfos()),
analyzer.getContext().getSessionVariable().getInsertVisibleTimeoutMs());
} catch (Throwable e) {
// situation2.1: publish error, throw exception
@@ -226,7 +224,8 @@ public class UpdateStmtExecutor {
updateStmtExecutor.targetTable = (OlapTable) updateStmt.getTargetTable();
updateStmtExecutor.whereExpr = updateStmt.getWhereExpr();
updateStmtExecutor.setExprs = updateStmt.getSetExprs();
- Database database = Catalog.getCurrentCatalog().getDbOrAnalysisException(updateStmt.getTableName().getDb());
+ Database database = Catalog.getCurrentInternalCatalog()
+ .getDbOrAnalysisException(updateStmt.getTableName().getDb());
updateStmtExecutor.dbId = database.getId();
updateStmtExecutor.analyzer = updateStmt.getAnalyzer();
updateStmtExecutor.queryId = updateStmtExecutor.analyzer.getContext().queryId();
diff --git a/fe/fe-core/src/main/java/org/apache/doris/master/MasterImpl.java b/fe/fe-core/src/main/java/org/apache/doris/master/MasterImpl.java
index 1593dd737b..06cb76329e 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/master/MasterImpl.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/master/MasterImpl.java
@@ -292,7 +292,7 @@ public class MasterImpl {
long backendId = pushTask.getBackendId();
long signature = task.getSignature();
long transactionId = ((PushTask) task).getTransactionId();
- Database db = Catalog.getCurrentCatalog().getDbNullable(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable(dbId);
if (db == null) {
AgentTaskQueue.removeTask(backendId, TTaskType.REALTIME_PUSH, signature);
return;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/master/PartitionInMemoryInfoCollector.java b/fe/fe-core/src/main/java/org/apache/doris/master/PartitionInMemoryInfoCollector.java
index 78e2c7ffa6..f4e78b6277 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/master/PartitionInMemoryInfoCollector.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/master/PartitionInMemoryInfoCollector.java
@@ -49,9 +49,9 @@ public class PartitionInMemoryInfoCollector extends MasterDaemon {
Catalog catalog = Catalog.getCurrentCatalog();
TabletInvertedIndex tabletInvertedIndex = catalog.getTabletInvertedIndex();
ImmutableSet.Builder builder = ImmutableSet.builder();
- List<Long> dbIdList = catalog.getDbIds();
+ List<Long> dbIdList = catalog.getInternalDataSource().getDbIds();
for (Long dbId : dbIdList) {
- Database db = catalog.getDbNullable(dbId);
+ Database db = catalog.getInternalDataSource().getDbNullable(dbId);
if (db == null) {
LOG.warn("Database [" + dbId + "] does not exist, skip to update database used data quota");
continue;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/master/ReportHandler.java b/fe/fe-core/src/main/java/org/apache/doris/master/ReportHandler.java
index 79f9d131ac..96719a2987 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/master/ReportHandler.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/master/ReportHandler.java
@@ -395,7 +395,7 @@ public class ReportHandler extends Daemon {
long backendId, long backendReportVersion) {
TabletInvertedIndex invertedIndex = Catalog.getCurrentInvertedIndex();
for (Long dbId : tabletSyncMap.keySet()) {
- Database db = Catalog.getCurrentCatalog().getDbNullable(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable(dbId);
if (db == null) {
continue;
}
@@ -514,7 +514,7 @@ public class ReportHandler extends Daemon {
AgentBatchTask createReplicaBatchTask = new AgentBatchTask();
TabletInvertedIndex invertedIndex = Catalog.getCurrentInvertedIndex();
for (Long dbId : tabletDeleteFromMeta.keySet()) {
- Database db = Catalog.getCurrentCatalog().getDbNullable(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable(dbId);
if (db == null) {
continue;
}
@@ -779,7 +779,7 @@ public class ReportHandler extends Daemon {
TabletInvertedIndex invertedIndex = Catalog.getCurrentInvertedIndex();
BackendReplicasInfo backendReplicasInfo = new BackendReplicasInfo(backendId);
for (Long dbId : tabletRecoveryMap.keySet()) {
- Database db = Catalog.getCurrentCatalog().getDbNullable(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable(dbId);
if (db == null) {
continue;
}
@@ -895,7 +895,7 @@ public class ReportHandler extends Daemon {
long dataSize = backendTabletInfo.getDataSize();
long rowCount = backendTabletInfo.getRowCount();
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(dbId);
OlapTable olapTable = (OlapTable) db.getTableOrMetaException(tableId, Table.TableType.OLAP);
olapTable.writeLockOrMetaException();
try {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindRelation.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindRelation.java
index ec3c170b75..88a4b38f02 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindRelation.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindRelation.java
@@ -62,7 +62,7 @@ public class BindRelation extends OneAnalysisRuleFactory {
private Table getTable(List<String> qualifier, Catalog catalog) {
String dbName = qualifier.get(0);
- Database db = catalog.getDb(dbName)
+ Database db = catalog.getInternalDataSource().getDb(dbName)
.orElseThrow(() -> new RuntimeException("Database [" + dbName + "] does not exist."));
db.readLock();
try {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/persist/EditLog.java b/fe/fe-core/src/main/java/org/apache/doris/persist/EditLog.java
index 6f1995677f..0871855d20 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/persist/EditLog.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/persist/EditLog.java
@@ -194,7 +194,8 @@ public class EditLog {
}
case OperationType.OP_DROP_TABLE: {
DropInfo info = (DropInfo) journal.getData();
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException(info.getDbId());
+ Database db =
+ Catalog.getCurrentInternalCatalog().getDbOrMetaException(info.getDbId());
LOG.info("Begin to unprotect drop table. db = "
+ db.getFullName() + " table = " + info.getTableId());
catalog.replayDropTable(db, info.getTableId(), info.isForceDrop());
diff --git a/fe/fe-core/src/main/java/org/apache/doris/policy/DropPolicyLog.java b/fe/fe-core/src/main/java/org/apache/doris/policy/DropPolicyLog.java
index 04f854fd84..7d85c812f9 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/policy/DropPolicyLog.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/policy/DropPolicyLog.java
@@ -70,7 +70,7 @@ public class DropPolicyLog implements Writable {
if (curDb == null) {
curDb = ConnectContext.get().getDatabase();
}
- Database db = Catalog.getCurrentCatalog().getDbOrAnalysisException(curDb);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrAnalysisException(curDb);
Table table = db.getTableOrAnalysisException(stmt.getTableName().getTbl());
return new DropPolicyLog(db.getId(), table.getId(), stmt.getType(),
stmt.getPolicyName(), stmt.getUser());
diff --git a/fe/fe-core/src/main/java/org/apache/doris/policy/Policy.java b/fe/fe-core/src/main/java/org/apache/doris/policy/Policy.java
index 332b9a0026..47f8dcb149 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/policy/Policy.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/policy/Policy.java
@@ -20,8 +20,8 @@ package org.apache.doris.policy;
import org.apache.doris.analysis.CreatePolicyStmt;
import org.apache.doris.analysis.UserIdentity;
import org.apache.doris.catalog.Catalog;
-import org.apache.doris.catalog.Database;
-import org.apache.doris.catalog.Table;
+import org.apache.doris.catalog.DatabaseIf;
+import org.apache.doris.catalog.TableIf;
import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.io.Text;
import org.apache.doris.common.io.Writable;
@@ -88,10 +88,10 @@ public abstract class Policy implements Writable, GsonPostProcessable {
if (curDb == null) {
curDb = ConnectContext.get().getDatabase();
}
- Database db = Catalog.getCurrentCatalog().getDbOrAnalysisException(curDb);
+ DatabaseIf db = Catalog.getCurrentCatalog().getCurrentDataSource().getDbOrAnalysisException(curDb);
UserIdentity userIdent = stmt.getUser();
userIdent.analyze(ConnectContext.get().getClusterName());
- Table table = db.getTableOrAnalysisException(stmt.getTableName().getTbl());
+ TableIf table = db.getTableOrAnalysisException(stmt.getTableName().getTbl());
return new RowPolicy(stmt.getType(), stmt.getPolicyName(), db.getId(), userIdent,
stmt.getOrigStmt().originStmt, table.getId(), stmt.getFilterType(),
stmt.getWherePredicate());
diff --git a/fe/fe-core/src/main/java/org/apache/doris/policy/RowPolicy.java b/fe/fe-core/src/main/java/org/apache/doris/policy/RowPolicy.java
index b989583a4e..94c0458069 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/policy/RowPolicy.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/policy/RowPolicy.java
@@ -118,7 +118,7 @@ public class RowPolicy extends Policy {
* Use for SHOW POLICY.
**/
public List<String> getShowInfo() throws AnalysisException {
- Database database = Catalog.getCurrentCatalog().getDbOrAnalysisException(this.dbId);
+ Database database = Catalog.getCurrentInternalCatalog().getDbOrAnalysisException(this.dbId);
Table table = database.getTableOrAnalysisException(this.tableId);
return Lists.newArrayList(this.policyName, database.getFullName(), table.getName(), this.type.name(),
this.filterType.name(), this.wherePredicate.toSql(), this.user.getQualifiedUser(), this.originStmt);
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java
index 724278af10..33f15e0f1f 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java
@@ -19,7 +19,7 @@ package org.apache.doris.qe;
import org.apache.doris.analysis.UserIdentity;
import org.apache.doris.catalog.Catalog;
-import org.apache.doris.catalog.Database;
+import org.apache.doris.catalog.DatabaseIf;
import org.apache.doris.cluster.ClusterNamespace;
import org.apache.doris.common.UserException;
import org.apache.doris.common.util.DebugUtil;
@@ -44,6 +44,7 @@ import org.apache.logging.log4j.Logger;
import java.nio.channels.SocketChannel;
import java.util.List;
+import java.util.Optional;
import java.util.Set;
// When one client connect in, we create a connect context for it.
@@ -427,7 +428,8 @@ public class ConnectContext {
public void setDatabase(String db) {
currentDb = db;
- currentDbId = Catalog.getCurrentCatalog().getDb(db).map(Database::getId).orElse(-1L);
+ Optional<DatabaseIf> dbInstance = Catalog.getCurrentCatalog().getCurrentDataSource().getDb(db);
+ currentDbId = dbInstance.isPresent() ? dbInstance.get().getId() : -1;
}
public void setExecutor(StmtExecutor executor) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectProcessor.java b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectProcessor.java
index c83f5eeb45..48400a820f 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectProcessor.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectProcessor.java
@@ -26,8 +26,8 @@ import org.apache.doris.analysis.StatementBase;
import org.apache.doris.analysis.UserIdentity;
import org.apache.doris.catalog.Catalog;
import org.apache.doris.catalog.Column;
-import org.apache.doris.catalog.Database;
-import org.apache.doris.catalog.Table;
+import org.apache.doris.catalog.DatabaseIf;
+import org.apache.doris.catalog.TableIf;
import org.apache.doris.cluster.ClusterNamespace;
import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.Config;
@@ -311,12 +311,12 @@ public class ConnectProcessor {
ctx.getState().setError(ErrorCode.ERR_UNKNOWN_TABLE, "Empty tableName");
return;
}
- Database db = ctx.getCatalog().getDbNullable(ctx.getDatabase());
+ DatabaseIf db = ctx.getCatalog().getCurrentDataSource().getDbNullable(ctx.getDatabase());
if (db == null) {
ctx.getState().setError(ErrorCode.ERR_BAD_DB_ERROR, "Unknown database(" + ctx.getDatabase() + ")");
return;
}
- Table table = db.getTableNullable(tableName);
+ TableIf table = db.getTableNullable(tableName);
if (table == null) {
ctx.getState().setError(ErrorCode.ERR_UNKNOWN_TABLE, "Unknown table(" + tableName + ")");
return;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/ShowExecutor.java b/fe/fe-core/src/main/java/org/apache/doris/qe/ShowExecutor.java
index 7b1cba596e..1ed634f087 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/ShowExecutor.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/ShowExecutor.java
@@ -99,6 +99,7 @@ import org.apache.doris.catalog.BrokerMgr;
import org.apache.doris.catalog.Catalog;
import org.apache.doris.catalog.Column;
import org.apache.doris.catalog.Database;
+import org.apache.doris.catalog.DatabaseIf;
import org.apache.doris.catalog.DynamicPartitionProperty;
import org.apache.doris.catalog.EncryptKey;
import org.apache.doris.catalog.Function;
@@ -113,6 +114,7 @@ import org.apache.doris.catalog.Replica;
import org.apache.doris.catalog.ReplicaAllocation;
import org.apache.doris.catalog.ScalarType;
import org.apache.doris.catalog.Table;
+import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.Tablet;
import org.apache.doris.catalog.TabletInvertedIndex;
import org.apache.doris.catalog.TabletMeta;
@@ -411,37 +413,41 @@ public class ShowExecutor {
// Handle show functions
private void handleShowFunctions() throws AnalysisException {
ShowFunctionsStmt showStmt = (ShowFunctionsStmt) stmt;
- Database db = ctx.getCatalog().getDbOrAnalysisException(showStmt.getDbName());
- List<Function> functions = showStmt.getIsBuiltin() ? ctx.getCatalog().getBuiltinFunctions() : db.getFunctions();
+ DatabaseIf db = ctx.getCatalog().getCurrentDataSource().getDbOrAnalysisException(showStmt.getDbName());
- List<List<Comparable>> rowSet = Lists.newArrayList();
- for (Function function : functions) {
- List<Comparable> row = function.getInfo(showStmt.getIsVerbose());
- // like predicate
- if (showStmt.getWild() == null || showStmt.like(function.functionName())) {
- rowSet.add(row);
- }
- }
-
- // sort function rows by first column asc
- ListComparator<List<Comparable>> comparator = null;
- OrderByPair orderByPair = new OrderByPair(0, false);
- comparator = new ListComparator<>(orderByPair);
- Collections.sort(rowSet, comparator);
List<List<String>> resultRowSet = Lists.newArrayList();
-
- Set<String> functionNameSet = new HashSet<>();
- for (List<Comparable> row : rowSet) {
- List<String> resultRow = Lists.newArrayList();
- // if not verbose, remove duplicate function name
- if (functionNameSet.contains(row.get(0).toString())) {
- continue;
+ if (db instanceof Database) {
+ List<Function> functions =
+ showStmt.getIsBuiltin() ? ctx.getCatalog().getBuiltinFunctions() : ((Database) db).getFunctions();
+
+ List<List<Comparable>> rowSet = Lists.newArrayList();
+ for (Function function : functions) {
+ List<Comparable> row = function.getInfo(showStmt.getIsVerbose());
+ // like predicate
+ if (showStmt.getWild() == null || showStmt.like(function.functionName())) {
+ rowSet.add(row);
+ }
}
- for (Comparable column : row) {
- resultRow.add(column.toString());
+
+ // sort function rows by first column asc
+ ListComparator<List<Comparable>> comparator = null;
+ OrderByPair orderByPair = new OrderByPair(0, false);
+ comparator = new ListComparator<>(orderByPair);
+ Collections.sort(rowSet, comparator);
+
+ Set<String> functionNameSet = new HashSet<>();
+ for (List<Comparable> row : rowSet) {
+ List<String> resultRow = Lists.newArrayList();
+ // if not verbose, remove duplicate function name
+ if (functionNameSet.contains(row.get(0).toString())) {
+ continue;
+ }
+ for (Comparable column : row) {
+ resultRow.add(column.toString());
+ }
+ resultRowSet.add(resultRow);
+ functionNameSet.add(resultRow.get(0));
}
- resultRowSet.add(resultRow);
- functionNameSet.add(resultRow.get(0));
}
// Only success
@@ -454,48 +460,51 @@ public class ShowExecutor {
// Handle show create function
private void handleShowCreateFunction() throws AnalysisException {
ShowCreateFunctionStmt showCreateFunctionStmt = (ShowCreateFunctionStmt) stmt;
- Database db = ctx.getCatalog().getDbOrAnalysisException(showCreateFunctionStmt.getDbName());
-
- Function function = db.getFunction(showCreateFunctionStmt.getFunction());
+ DatabaseIf db =
+ ctx.getCatalog().getCurrentDataSource().getDbOrAnalysisException(showCreateFunctionStmt.getDbName());
List<List<String>> resultRowSet = Lists.newArrayList();
- List<String> resultRow = Lists.newArrayList();
- resultRow.add(function.signatureString());
- resultRow.add(function.toSql(false));
- resultRowSet.add(resultRow);
+ if (db instanceof Database) {
+ Function function = ((Database) db).getFunction(showCreateFunctionStmt.getFunction());
+ List<String> resultRow = Lists.newArrayList();
+ resultRow.add(function.signatureString());
+ resultRow.add(function.toSql(false));
+ resultRowSet.add(resultRow);
+ }
resultSet = new ShowResultSet(showCreateFunctionStmt.getMetaData(), resultRowSet);
}
// Handle show encryptkeys
private void handleShowEncryptKeys() throws AnalysisException {
ShowEncryptKeysStmt showStmt = (ShowEncryptKeysStmt) stmt;
- Database db = ctx.getCatalog().getDbOrAnalysisException(showStmt.getDbName());
- List<EncryptKey> encryptKeys = db.getEncryptKeys();
+ DatabaseIf db = ctx.getCatalog().getCurrentDataSource().getDbOrAnalysisException(showStmt.getDbName());
+ List<List<String>> resultRowSet = Lists.newArrayList();
+ if (db instanceof Database) {
+ List<EncryptKey> encryptKeys = ((Database) db).getEncryptKeys();
+ List<List<Comparable>> rowSet = Lists.newArrayList();
+ for (EncryptKey encryptKey : encryptKeys) {
+ List<Comparable> row = encryptKey.getInfo();
+ // like predicate
+ if (showStmt.getWild() == null || showStmt.like(encryptKey.getEncryptKeyName().getKeyName())) {
+ rowSet.add(row);
+ }
- List<List<Comparable>> rowSet = Lists.newArrayList();
- for (EncryptKey encryptKey : encryptKeys) {
- List<Comparable> row = encryptKey.getInfo();
- // like predicate
- if (showStmt.getWild() == null || showStmt.like(encryptKey.getEncryptKeyName().getKeyName())) {
- rowSet.add(row);
}
- }
-
- // sort function rows by first column asc
- ListComparator<List<Comparable>> comparator = null;
- OrderByPair orderByPair = new OrderByPair(0, false);
- comparator = new ListComparator<>(orderByPair);
- Collections.sort(rowSet, comparator);
- List<List<String>> resultRowSet = Lists.newArrayList();
-
- Set<String> encryptKeyNameSet = new HashSet<>();
- for (List<Comparable> row : rowSet) {
- List<String> resultRow = Lists.newArrayList();
- for (Comparable column : row) {
- resultRow.add(column.toString());
+ // sort function rows by first column asc
+ ListComparator<List<Comparable>> comparator = null;
+ OrderByPair orderByPair = new OrderByPair(0, false);
+ comparator = new ListComparator<>(orderByPair);
+ Collections.sort(rowSet, comparator);
+
+ Set<String> encryptKeyNameSet = new HashSet<>();
+ for (List<Comparable> row : rowSet) {
+ List<String> resultRow = Lists.newArrayList();
+ for (Comparable column : row) {
+ resultRow.add(column.toString());
+ }
+ resultRowSet.add(resultRow);
+ encryptKeyNameSet.add(resultRow.get(0));
}
- resultRowSet.add(resultRow);
- encryptKeyNameSet.add(resultRow.get(0));
}
ShowResultSetMetaData showMetaData = showStmt.getMetaData();
@@ -563,7 +572,7 @@ public class ShowExecutor {
long dbId = showStmt.getDbId();
List<List<String>> rows = Lists.newArrayList();
Catalog catalog = ctx.getCatalog();
- Database database = catalog.getDbNullable(dbId);
+ DatabaseIf database = catalog.getCurrentDataSource().getDbNullable(dbId);
if (database != null) {
List<String> row = new ArrayList<>();
row.add(database.getFullName());
@@ -577,14 +586,14 @@ public class ShowExecutor {
long tableId = showStmt.getTableId();
List<List<String>> rows = Lists.newArrayList();
Catalog catalog = ctx.getCatalog();
- List<Long> dbIds = catalog.getDbIds();
+ List<Long> dbIds = catalog.getInternalDataSource().getDbIds();
// TODO should use inverted index
for (long dbId : dbIds) {
- Database database = catalog.getDbNullable(dbId);
+ Database database = catalog.getInternalDataSource().getDbNullable(dbId);
if (database == null) {
continue;
}
- Table table = database.getTableNullable(tableId);
+ TableIf table = database.getTableNullable(tableId);
if (table != null) {
List<String> row = new ArrayList<>();
row.add(database.getFullName());
@@ -602,10 +611,10 @@ public class ShowExecutor {
long partitionId = showStmt.getPartitionId();
List<List<String>> rows = Lists.newArrayList();
Catalog catalog = ctx.getCatalog();
- List<Long> dbIds = catalog.getDbIds();
+ List<Long> dbIds = catalog.getInternalDataSource().getDbIds();
// TODO should use inverted index
for (long dbId : dbIds) {
- Database database = catalog.getDbNullable(dbId);
+ Database database = catalog.getInternalDataSource().getDbNullable(dbId);
if (database == null) {
continue;
}
@@ -638,7 +647,7 @@ public class ShowExecutor {
private void handleShowDb() throws AnalysisException {
ShowDbStmt showDbStmt = (ShowDbStmt) stmt;
List<List<String>> rows = Lists.newArrayList();
- List<String> dbNames = ctx.getCatalog().getClusterDbNames(ctx.getClusterName());
+ List<String> dbNames = ctx.getCatalog().getInternalDataSource().getClusterDbNames(ctx.getClusterName());
PatternMatcher matcher = null;
if (showDbStmt.getPattern() != null) {
matcher = PatternMatcher.createMysqlPattern(showDbStmt.getPattern(),
@@ -671,20 +680,20 @@ public class ShowExecutor {
private void handleShowTable() throws AnalysisException {
ShowTableStmt showTableStmt = (ShowTableStmt) stmt;
List<List<String>> rows = Lists.newArrayList();
- Database db = ctx.getCatalog().getDbOrAnalysisException(showTableStmt.getDb());
+ DatabaseIf<TableIf> db =
+ ctx.getCatalog().getCurrentDataSource().getDbOrAnalysisException(showTableStmt.getDb());
PatternMatcher matcher = null;
if (showTableStmt.getPattern() != null) {
matcher = PatternMatcher.createMysqlPattern(showTableStmt.getPattern(),
CaseSensibility.TABLE.getCaseSensibility());
}
- for (Table tbl : db.getTables()) {
+ for (TableIf tbl : db.getTables()) {
if (matcher != null && !matcher.match(tbl.getName())) {
continue;
}
// check tbl privs
- if (!Catalog.getCurrentCatalog().getAuth().checkTblPriv(ConnectContext.get(),
- db.getFullName(), tbl.getName(),
- PrivPredicate.SHOW)) {
+ if (!Catalog.getCurrentCatalog().getAuth()
+ .checkTblPriv(ConnectContext.get(), db.getFullName(), tbl.getName(), PrivPredicate.SHOW)) {
continue;
}
if (showTableStmt.isVerbose()) {
@@ -704,22 +713,21 @@ public class ShowExecutor {
private void handleShowTableStatus() throws AnalysisException {
ShowTableStatusStmt showStmt = (ShowTableStatusStmt) stmt;
List<List<String>> rows = Lists.newArrayList();
- Database db = ctx.getCatalog().getDbNullable(showStmt.getDb());
+ DatabaseIf<TableIf> db = ctx.getCatalog().getCurrentDataSource().getDbNullable(showStmt.getDb());
if (db != null) {
PatternMatcher matcher = null;
if (showStmt.getPattern() != null) {
matcher = PatternMatcher.createMysqlPattern(showStmt.getPattern(),
CaseSensibility.TABLE.getCaseSensibility());
}
- for (Table table : db.getTables()) {
+ for (TableIf table : db.getTables()) {
if (matcher != null && !matcher.match(table.getName())) {
continue;
}
// check tbl privs
- if (!Catalog.getCurrentCatalog().getAuth().checkTblPriv(ConnectContext.get(),
- db.getFullName(), table.getName(),
- PrivPredicate.SHOW)) {
+ if (!Catalog.getCurrentCatalog().getAuth()
+ .checkTblPriv(ConnectContext.get(), db.getFullName(), table.getName(), PrivPredicate.SHOW)) {
continue;
}
List<String> row = Lists.newArrayList();
@@ -789,7 +797,7 @@ public class ShowExecutor {
private void handleShowCreateDb() throws AnalysisException {
ShowCreateDbStmt showStmt = (ShowCreateDbStmt) stmt;
List<List<String>> rows = Lists.newArrayList();
- Database db = ctx.getCatalog().getDbOrAnalysisException(showStmt.getDb());
+ DatabaseIf db = ctx.getCatalog().getCurrentDataSource().getDbOrAnalysisException(showStmt.getDb());
StringBuilder sb = new StringBuilder();
sb.append("CREATE DATABASE `").append(ClusterNamespace.getNameFromFullName(showStmt.getDb())).append("`");
if (db.getDbProperties().getProperties().size() > 0) {
@@ -805,8 +813,8 @@ public class ShowExecutor {
// Show create table
private void handleShowCreateTable() throws AnalysisException {
ShowCreateTableStmt showStmt = (ShowCreateTableStmt) stmt;
- Database db = ctx.getCatalog().getDbOrAnalysisException(showStmt.getDb());
- Table table = db.getTableOrAnalysisException(showStmt.getTable());
+ DatabaseIf db = ctx.getCatalog().getCurrentDataSource().getDbOrAnalysisException(showStmt.getDb());
+ TableIf table = db.getTableOrAnalysisException(showStmt.getTable());
List<List<String>> rows = Lists.newArrayList();
table.readLock();
@@ -844,8 +852,8 @@ public class ShowExecutor {
private void handleShowColumn() throws AnalysisException {
ShowColumnStmt showStmt = (ShowColumnStmt) stmt;
List<List<String>> rows = Lists.newArrayList();
- Database db = ctx.getCatalog().getDbOrAnalysisException(showStmt.getDb());
- Table table = db.getTableOrAnalysisException(showStmt.getTable());
+ DatabaseIf db = ctx.getCatalog().getCurrentDataSource().getDbOrAnalysisException(showStmt.getDb());
+ TableIf table = db.getTableOrAnalysisException(showStmt.getTable());
PatternMatcher matcher = null;
if (showStmt.getPattern() != null) {
matcher = PatternMatcher.createMysqlPattern(showStmt.getPattern(),
@@ -896,7 +904,7 @@ public class ShowExecutor {
private void handleShowIndex() throws AnalysisException {
ShowIndexStmt showStmt = (ShowIndexStmt) stmt;
List<List<String>> rows = Lists.newArrayList();
- Database db = ctx.getCatalog().getDbOrAnalysisException(showStmt.getDbName());
+ DatabaseIf db = ctx.getCatalog().getCurrentDataSource().getDbOrAnalysisException(showStmt.getDbName());
OlapTable table = db.getOlapTableOrAnalysisException(showStmt.getTableName().getTbl());
table.readLock();
@@ -996,7 +1004,7 @@ public class ShowExecutor {
ShowLoadStmt showStmt = (ShowLoadStmt) stmt;
Catalog catalog = Catalog.getCurrentCatalog();
- Database db = catalog.getDbOrAnalysisException(showStmt.getDbName());
+ DatabaseIf db = catalog.getCurrentDataSource().getDbOrAnalysisException(showStmt.getDbName());
long dbId = db.getId();
// combine the List<LoadInfo> of load(v1) and loadManager(v2)
@@ -1060,7 +1068,7 @@ public class ShowExecutor {
ShowStreamLoadStmt showStmt = (ShowStreamLoadStmt) stmt;
Catalog catalog = Catalog.getCurrentCatalog();
- Database db = catalog.getDbOrAnalysisException(showStmt.getDbName());
+ Database db = catalog.getInternalDataSource().getDbOrAnalysisException(showStmt.getDbName());
long dbId = db.getId();
List<List<Comparable>> streamLoadRecords = catalog.getStreamLoadRecordMgr().getStreamLoadRecordByDb(
@@ -1115,7 +1123,7 @@ public class ShowExecutor {
}
Catalog catalog = Catalog.getCurrentCatalog();
- Database db = catalog.getDbOrAnalysisException(showWarningsStmt.getDbName());
+ Database db = catalog.getInternalDataSource().getDbOrAnalysisException(showWarningsStmt.getDbName());
long dbId = db.getId();
Load load = catalog.getLoadInstance();
@@ -1341,7 +1349,7 @@ public class ShowExecutor {
ShowDeleteStmt showStmt = (ShowDeleteStmt) stmt;
Catalog catalog = Catalog.getCurrentCatalog();
- Database db = catalog.getDbOrAnalysisException(showStmt.getDbName());
+ Database db = catalog.getInternalDataSource().getDbOrAnalysisException(showStmt.getDbName());
long dbId = db.getId();
DeleteHandler deleteHandler = catalog.getDeleteHandler();
@@ -1429,7 +1437,7 @@ public class ShowExecutor {
int tabletIdx = -1;
// check real meta
do {
- Database db = catalog.getDbNullable(dbId);
+ Database db = catalog.getInternalDataSource().getDbNullable(dbId);
if (db == null) {
isSync = false;
break;
@@ -1493,7 +1501,7 @@ public class ShowExecutor {
partitionId.toString(), indexId.toString(),
isSync.toString(), String.valueOf(tabletIdx), detailCmd));
} else {
- Database db = catalog.getDbOrAnalysisException(showStmt.getDbName());
+ Database db = catalog.getInternalDataSource().getDbOrAnalysisException(showStmt.getDbName());
OlapTable olapTable = db.getOlapTableOrAnalysisException(showStmt.getTableName());
olapTable.readLock();
@@ -1642,7 +1650,7 @@ public class ShowExecutor {
private void handleShowExport() throws AnalysisException {
ShowExportStmt showExportStmt = (ShowExportStmt) stmt;
Catalog catalog = Catalog.getCurrentCatalog();
- Database db = catalog.getDbOrAnalysisException(showExportStmt.getDbName());
+ Database db = catalog.getInternalDataSource().getDbOrAnalysisException(showExportStmt.getDbName());
long dbId = db.getId();
ExportMgr exportMgr = catalog.getExportMgr();
@@ -1701,7 +1709,7 @@ public class ShowExecutor {
private void handleShowBackup() throws AnalysisException {
ShowBackupStmt showStmt = (ShowBackupStmt) stmt;
- Database db = Catalog.getCurrentCatalog().getDbOrAnalysisException(showStmt.getDbName());
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrAnalysisException(showStmt.getDbName());
List<AbstractJob> jobs = Catalog.getCurrentCatalog().getBackupHandler()
.getJobs(db.getId(), showStmt.getLabelPredicate());
@@ -1716,7 +1724,7 @@ public class ShowExecutor {
private void handleShowRestore() throws AnalysisException {
ShowRestoreStmt showStmt = (ShowRestoreStmt) stmt;
- Database db = Catalog.getCurrentCatalog().getDbOrAnalysisException(showStmt.getDbName());
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrAnalysisException(showStmt.getDbName());
List<AbstractJob> jobs = Catalog.getCurrentCatalog().getBackupHandler()
.getJobs(db.getId(), showStmt.getLabelPredicate());
@@ -1732,7 +1740,7 @@ public class ShowExecutor {
private void handleShowSyncJobs() throws AnalysisException {
ShowSyncJobStmt showStmt = (ShowSyncJobStmt) stmt;
Catalog catalog = Catalog.getCurrentCatalog();
- Database db = catalog.getDbOrAnalysisException(showStmt.getDbName());
+ DatabaseIf db = Catalog.getCurrentInternalCatalog().getDbOrAnalysisException(showStmt.getDbName());
List<List<Comparable>> syncInfos = catalog.getSyncJobManager().getSyncJobsInfoByDbId(db.getId());
Collections.sort(syncInfos, new ListComparator<List<Comparable>>(0));
@@ -1826,16 +1834,16 @@ public class ShowExecutor {
private void handleShowDynamicPartition() {
ShowDynamicPartitionStmt showDynamicPartitionStmt = (ShowDynamicPartitionStmt) stmt;
List<List<String>> rows = Lists.newArrayList();
- Database db = ctx.getCatalog().getDbNullable(showDynamicPartitionStmt.getDb());
- if (db != null) {
+ DatabaseIf db = ctx.getCatalog().getInternalDataSource().getDbNullable(showDynamicPartitionStmt.getDb());
+ if (db != null && (db instanceof Database)) {
List<Table> tableList = db.getTables();
for (Table tbl : tableList) {
if (!(tbl instanceof OlapTable)) {
continue;
}
- DynamicPartitionScheduler dynamicPartitionScheduler
- = Catalog.getCurrentCatalog().getDynamicPartitionScheduler();
+ DynamicPartitionScheduler dynamicPartitionScheduler =
+ Catalog.getCurrentCatalog().getDynamicPartitionScheduler();
OlapTable olapTable = (OlapTable) tbl;
olapTable.readLock();
try {
@@ -1887,15 +1895,14 @@ public class ShowExecutor {
olapTable.readUnlock();
}
}
-
- resultSet = new ShowResultSet(showDynamicPartitionStmt.getMetaData(), rows);
}
+ resultSet = new ShowResultSet(showDynamicPartitionStmt.getMetaData(), rows);
}
// Show transaction statement.
private void handleShowTransaction() throws AnalysisException {
ShowTransactionStmt showStmt = (ShowTransactionStmt) stmt;
- Database db = ctx.getCatalog().getDbOrAnalysisException(showStmt.getDbName());
+ DatabaseIf db = ctx.getCatalog().getInternalDataSource().getDbOrAnalysisException(showStmt.getDbName());
TransactionStatus status = showStmt.getStatus();
GlobalTransactionMgr transactionMgr = Catalog.getCurrentGlobalTransactionMgr();
@@ -2116,7 +2123,7 @@ public class ShowExecutor {
private void handleShowTableCreation() throws AnalysisException {
ShowTableCreationStmt showStmt = (ShowTableCreationStmt) stmt;
String dbName = showStmt.getDbName();
- Database db = ctx.getCatalog().getDbOrAnalysisException(dbName);
+ DatabaseIf db = ctx.getCatalog().getCurrentDataSource().getDbOrAnalysisException(dbName);
List<IcebergTableCreationRecord> records =
ctx.getCatalog().getIcebergTableCreationRecordMgr().getTableCreationRecordByDbId(db.getId());
@@ -2211,7 +2218,7 @@ public class ShowExecutor {
private void handleShowCreateMaterializedView() throws AnalysisException {
List<List<String>> resultRowSet = new ArrayList<>();
ShowCreateMaterializedViewStmt showStmt = (ShowCreateMaterializedViewStmt) stmt;
- Database db = Catalog.getCurrentCatalog().getDbOrAnalysisException(showStmt.getTableName().getDb());
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrAnalysisException(showStmt.getTableName().getDb());
Table table = db.getTableOrAnalysisException(showStmt.getTableName().getTbl());
if (table instanceof OlapTable) {
OlapTable baseTable = ((OlapTable) table);
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java b/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java
index edbc629be0..3ed8f26156 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java
@@ -58,6 +58,7 @@ import org.apache.doris.catalog.Database;
import org.apache.doris.catalog.PrimitiveType;
import org.apache.doris.catalog.ScalarType;
import org.apache.doris.catalog.Table;
+import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.TableIf.TableType;
import org.apache.doris.catalog.Type;
import org.apache.doris.common.AnalysisException;
@@ -571,7 +572,7 @@ public class StmtExecutor implements ProfileWriter {
if (parsedStmt instanceof QueryStmt
|| parsedStmt instanceof InsertStmt
|| parsedStmt instanceof CreateTableAsSelectStmt) {
- Map<Long, Table> tableMap = Maps.newTreeMap();
+ Map<Long, TableIf> tableMap = Maps.newTreeMap();
QueryStmt queryStmt;
Set<String> parentViewNameSet = Sets.newHashSet();
if (parsedStmt instanceof QueryStmt) {
@@ -586,7 +587,7 @@ public class StmtExecutor implements ProfileWriter {
insertStmt.getTables(analyzer, tableMap, parentViewNameSet);
}
// table id in tableList is in ascending order because that table map is a sorted map
- List<Table> tables = Lists.newArrayList(tableMap.values());
+ List<TableIf> tables = Lists.newArrayList(tableMap.values());
int analyzeTimes = 2;
for (int i = 1; i <= analyzeTimes; i++) {
MetaLockUtils.readLockTables(tables);
@@ -1187,8 +1188,8 @@ public class StmtExecutor implements ProfileWriter {
TTxnParams txnConf = txnEntry.getTxnConf();
long timeoutSecond = ConnectContext.get().getSessionVariable().getQueryTimeoutS();
TransactionState.LoadJobSourceType sourceType = TransactionState.LoadJobSourceType.INSERT_STREAMING;
- Database dbObj = Catalog.getCurrentCatalog().getDbOrException(
- dbName, s -> new TException("database is invalid for dbName: " + s));
+ Database dbObj = Catalog.getCurrentInternalCatalog()
+ .getDbOrException(dbName, s -> new TException("database is invalid for dbName: " + s));
Table tblObj = dbObj.getTableOrException(tblName, s -> new TException("table is invalid: " + s));
txnConf.setDbId(dbObj.getId()).setTbl(tblName).setDb(dbName);
txnEntry.setTable(tblObj);
diff --git a/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java b/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java
index b8419215a7..fc2bc0785c 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java
@@ -42,6 +42,7 @@ import org.apache.doris.common.ThriftServerEventProcessor;
import org.apache.doris.common.UserException;
import org.apache.doris.common.Version;
import org.apache.doris.datasource.DataSourceIf;
+import org.apache.doris.datasource.InternalDataSource;
import org.apache.doris.load.EtlStatus;
import org.apache.doris.load.LoadJob;
import org.apache.doris.load.MiniEtlTaskInfo;
@@ -214,14 +215,13 @@ public class FrontendServiceImpl implements FrontendService.Iface {
}
// database privs should be checked in analysis phrase
-
UserIdentity currentUser;
if (params.isSetCurrentUserIdent()) {
currentUser = UserIdentity.fromThrift(params.current_user_ident);
} else {
currentUser = UserIdentity.createAnalyzedUserIdentWithIp(params.user, params.user_ip);
}
- Database db = Catalog.getCurrentCatalog().getDbNullable(params.db);
+ DatabaseIf<TableIf> db = Catalog.getCurrentCatalog().getCurrentDataSource().getDbNullable(params.db);
if (db != null) {
for (String tableName : db.getTableNamesWithLock()) {
LOG.debug("get table: {}, wait to check", tableName);
@@ -262,7 +262,12 @@ public class FrontendServiceImpl implements FrontendService.Iface {
} else {
currentUser = UserIdentity.createAnalyzedUserIdentWithIp(params.user, params.user_ip);
}
- DataSourceIf ds = Catalog.getCurrentCatalog().getDataSourceMgr().getCatalog(params.catalog);
+
+ String catalogName = InternalDataSource.INTERNAL_DS_NAME;
+ if (params.isSetCatalog()) {
+ catalogName = params.catalog;
+ }
+ DataSourceIf ds = Catalog.getCurrentCatalog().getDataSourceMgr().getCatalog(catalogName);
if (ds != null) {
DatabaseIf db = ds.getDbNullable(params.db);
if (db != null) {
@@ -400,9 +405,9 @@ public class FrontendServiceImpl implements FrontendService.Iface {
return result;
}
- Database db = Catalog.getCurrentCatalog().getDbNullable(params.db);
+ DatabaseIf<TableIf> db = Catalog.getCurrentCatalog().getCurrentDataSource().getDbNullable(params.db);
if (db != null) {
- Table table = db.getTableNullable(params.getTableName());
+ TableIf table = db.getTableNullable(params.getTableName());
if (table != null) {
table.readLock();
try {
@@ -687,10 +692,9 @@ public class FrontendServiceImpl implements FrontendService.Iface {
return result;
}
-
private void checkAuthCodeUuid(String dbName, long txnId, String authCodeUuid) throws AuthenticationException {
- Database db = Catalog.getCurrentCatalog().getDbOrException(
- dbName, s -> new AuthenticationException("invalid db name: " + s));
+ DatabaseIf db = Catalog.getCurrentInternalCatalog()
+ .getDbOrException(dbName, s -> new AuthenticationException("invalid db name: " + s));
TransactionState transactionState = Catalog.getCurrentGlobalTransactionMgr()
.getTransactionState(db.getId(), txnId);
if (transactionState == null) {
@@ -799,7 +803,7 @@ public class FrontendServiceImpl implements FrontendService.Iface {
// check database
Catalog catalog = Catalog.getCurrentCatalog();
String fullDbName = ClusterNamespace.getFullName(cluster, request.getDb());
- Database db = catalog.getDbNullable(fullDbName);
+ Database db = catalog.getInternalDataSource().getDbNullable(fullDbName);
if (db == null) {
String dbName = fullDbName;
if (Strings.isNullOrEmpty(request.getCluster())) {
@@ -808,7 +812,7 @@ public class FrontendServiceImpl implements FrontendService.Iface {
throw new UserException("unknown database, database=" + dbName);
}
- Table table = db.getTableOrMetaException(request.tbl, TableType.OLAP);
+ OlapTable table = (OlapTable) db.getTableOrMetaException(request.tbl, TableType.OLAP);
// begin
long timeoutSecond = request.isSetTimeout() ? request.getTimeout() : Config.stream_load_default_timeout_second;
MetricRepo.COUNTER_LOAD_ADD.increase(1L);
@@ -868,9 +872,9 @@ public class FrontendServiceImpl implements FrontendService.Iface {
String fullDbName = ClusterNamespace.getFullName(cluster, request.getDb());
Database db;
if (request.isSetDbId() && request.getDbId() > 0) {
- db = catalog.getDbNullable(request.getDbId());
+ db = catalog.getInternalDataSource().getDbNullable(request.getDbId());
} else {
- db = catalog.getDbNullable(fullDbName);
+ db = catalog.getInternalDataSource().getDbNullable(fullDbName);
}
if (db == null) {
String dbName = fullDbName;
@@ -881,11 +885,11 @@ public class FrontendServiceImpl implements FrontendService.Iface {
}
long timeoutMs = request.isSetThriftRpcTimeoutMs() ? request.getThriftRpcTimeoutMs() / 2 : 5000;
- Table table = db.getTableOrMetaException(request.getTbl(), TableType.OLAP);
- Catalog.getCurrentGlobalTransactionMgr().preCommitTransaction2PC(
- db, Lists.newArrayList(table), request.getTxnId(),
- TabletCommitInfo.fromThrift(request.getCommitInfos()),
- timeoutMs, TxnCommitAttachment.fromThrift(request.txnCommitAttachment));
+ OlapTable table = (OlapTable) db.getTableOrMetaException(request.getTbl(), TableType.OLAP);
+ Catalog.getCurrentGlobalTransactionMgr()
+ .preCommitTransaction2PC(db, Lists.newArrayList(table), request.getTxnId(),
+ TabletCommitInfo.fromThrift(request.getCommitInfos()), timeoutMs,
+ TxnCommitAttachment.fromThrift(request.txnCommitAttachment));
}
@Override
@@ -926,7 +930,7 @@ public class FrontendServiceImpl implements FrontendService.Iface {
// get database
Catalog catalog = Catalog.getCurrentCatalog();
- Database database = catalog.getDbNullable(fullDbName);
+ Database database = catalog.getInternalDataSource().getDbNullable(fullDbName);
if (database == null) {
throw new UserException("unknown database, database=" + fullDbName);
}
@@ -1004,9 +1008,9 @@ public class FrontendServiceImpl implements FrontendService.Iface {
String fullDbName = ClusterNamespace.getFullName(cluster, request.getDb());
Database db;
if (request.isSetDbId() && request.getDbId() > 0) {
- db = catalog.getDbNullable(request.getDbId());
+ db = catalog.getInternalDataSource().getDbNullable(request.getDbId());
} else {
- db = catalog.getDbNullable(fullDbName);
+ db = catalog.getInternalDataSource().getDbNullable(fullDbName);
}
if (db == null) {
String dbName = fullDbName;
@@ -1018,10 +1022,10 @@ public class FrontendServiceImpl implements FrontendService.Iface {
long timeoutMs = request.isSetThriftRpcTimeoutMs() ? request.getThriftRpcTimeoutMs() / 2 : 5000;
Table table = db.getTableOrMetaException(request.getTbl(), TableType.OLAP);
- boolean ret = Catalog.getCurrentGlobalTransactionMgr().commitAndPublishTransaction(
- db, Lists.newArrayList(table), request.getTxnId(),
- TabletCommitInfo.fromThrift(request.getCommitInfos()),
- timeoutMs, TxnCommitAttachment.fromThrift(request.txnCommitAttachment));
+ boolean ret = Catalog.getCurrentGlobalTransactionMgr()
+ .commitAndPublishTransaction((Database) db, Lists.newArrayList(table), request.getTxnId(),
+ TabletCommitInfo.fromThrift(request.getCommitInfos()), timeoutMs,
+ TxnCommitAttachment.fromThrift(request.txnCommitAttachment));
if (ret) {
// if commit and publish is success, load can be regarded as success
MetricRepo.COUNTER_LOAD_FINISHED.increase(1L);
@@ -1069,9 +1073,9 @@ public class FrontendServiceImpl implements FrontendService.Iface {
String dbName = ClusterNamespace.getFullName(cluster, request.getDb());
Database db;
if (request.isSetDbId() && request.getDbId() > 0) {
- db = Catalog.getCurrentCatalog().getDbNullable(request.getDbId());
+ db = Catalog.getCurrentInternalCatalog().getDbNullable(request.getDbId());
} else {
- db = Catalog.getCurrentCatalog().getDbNullable(dbName);
+ db = Catalog.getCurrentInternalCatalog().getDbNullable(dbName);
}
if (db == null) {
throw new MetaNotFoundException("db " + request.getDb() + " does not exist");
@@ -1113,7 +1117,7 @@ public class FrontendServiceImpl implements FrontendService.Iface {
Catalog catalog = Catalog.getCurrentCatalog();
String fullDbName = ClusterNamespace.getFullName(cluster, request.getDb());
- Database db = catalog.getDbNullable(fullDbName);
+ Database db = catalog.getInternalDataSource().getDbNullable(fullDbName);
if (db == null) {
String dbName = fullDbName;
if (Strings.isNullOrEmpty(request.getCluster())) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticsJobManager.java b/fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticsJobManager.java
index 95d12cd48a..194006cae1 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticsJobManager.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticsJobManager.java
@@ -101,7 +101,7 @@ public class StatisticsJobManager {
* - Rule3: The job for external table is not supported
*/
private void checkRestrict(long dbId, Set<Long> tableIds) throws AnalysisException {
- Database db = Catalog.getCurrentCatalog().getDbOrAnalysisException(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrAnalysisException(dbId);
db.readLock();
try {
// check table type
diff --git a/fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticsJobScheduler.java b/fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticsJobScheduler.java
index 65862c0e6e..23b90df198 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticsJobScheduler.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticsJobScheduler.java
@@ -131,7 +131,7 @@ public class StatisticsJobScheduler extends MasterDaemon {
private void divide(StatisticsJob statisticsJob) throws DdlException {
long jobId = statisticsJob.getId();
long dbId = statisticsJob.getDbId();
- Database db = Catalog.getCurrentCatalog().getDbOrDdlException(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrDdlException(dbId);
Set<Long> tblIds = statisticsJob.getTblIds();
Map<Long, List<String>> tableIdToColumnName = statisticsJob.getTableIdToColumnName();
List<StatisticsTask> tasks = statisticsJob.getTasks();
diff --git a/fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticsManager.java b/fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticsManager.java
index 3c67f9e9a0..ec5514af81 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticsManager.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticsManager.java
@@ -23,7 +23,9 @@ import org.apache.doris.analysis.TableName;
import org.apache.doris.catalog.Catalog;
import org.apache.doris.catalog.Column;
import org.apache.doris.catalog.Database;
+import org.apache.doris.catalog.DatabaseIf;
import org.apache.doris.catalog.Table;
+import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.Type;
import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.ErrorCode;
@@ -50,12 +52,12 @@ public class StatisticsManager {
public void alterTableStatistics(AlterTableStatsStmt stmt)
throws AnalysisException {
- Table table = validateTableName(stmt.getTableName());
+ TableIf table = validateTableName(stmt.getTableName());
statistics.updateTableStats(table.getId(), stmt.getStatsTypeToValue());
}
public void alterColumnStatistics(AlterColumnStatsStmt stmt) throws AnalysisException {
- Table table = validateTableName(stmt.getTableName());
+ TableIf table = validateTableName(stmt.getTableName());
String columnName = stmt.getColumnName();
Column column = table.getColumn(columnName);
if (column == null) {
@@ -67,10 +69,10 @@ public class StatisticsManager {
public List<List<String>> showTableStatsList(String dbName, String tableName)
throws AnalysisException {
- Database db = Catalog.getCurrentCatalog().getDbOrAnalysisException(dbName);
+ DatabaseIf<TableIf> db = Catalog.getCurrentCatalog().getCurrentDataSource().getDbOrAnalysisException(dbName);
List<List<String>> result = Lists.newArrayList();
if (tableName != null) {
- Table table = db.getTableOrAnalysisException(tableName);
+ TableIf table = db.getTableOrAnalysisException(tableName);
// check priv
if (!Catalog.getCurrentCatalog().getAuth().checkTblPriv(ConnectContext.get(), dbName, tableName,
PrivPredicate.SHOW)) {
@@ -82,9 +84,9 @@ public class StatisticsManager {
// get stats
result.add(showTableStats(table));
} else {
- for (Table table : db.getTables()) {
- if (!Catalog.getCurrentCatalog().getAuth().checkTblPriv(ConnectContext.get(), dbName, table.getName(),
- PrivPredicate.SHOW)) {
+ for (TableIf table : db.getTables()) {
+ if (!Catalog.getCurrentCatalog().getAuth()
+ .checkTblPriv(ConnectContext.get(), dbName, table.getName(), PrivPredicate.SHOW)) {
continue;
}
try {
@@ -99,7 +101,7 @@ public class StatisticsManager {
public List<List<String>> showColumnStatsList(TableName tableName) throws AnalysisException {
// check meta
- Table table = validateTableName(tableName);
+ TableIf table = validateTableName(tableName);
// check priv
if (!Catalog.getCurrentCatalog().getAuth().checkTblPriv(ConnectContext.get(), tableName.getDb(),
tableName.getTbl(), PrivPredicate.SHOW)) {
@@ -123,7 +125,7 @@ public class StatisticsManager {
return result;
}
- private List<String> showTableStats(Table table) throws AnalysisException {
+ private List<String> showTableStats(TableIf table) throws AnalysisException {
TableStats tableStats = statistics.getTableStats(table.getId());
if (tableStats == null) {
throw new AnalysisException("There is no statistics in this table:" + table.getName());
@@ -147,7 +149,7 @@ public class StatisticsManager {
validateTableAndColumn(categoryDesc);
long dbId = categoryDesc.getDbId();
long tblId = categoryDesc.getTableId();
- Database db = Catalog.getCurrentCatalog().getDbOrAnalysisException(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrAnalysisException(dbId);
Table table = db.getTableOrAnalysisException(tblId);
String columnName = categoryDesc.getColumnName();
Type columnType = table.getColumn(columnName).getType();
@@ -155,11 +157,11 @@ public class StatisticsManager {
statistics.updateColumnStats(tblId, columnName, columnType, statsTypeToValue);
}
- private Table validateTableName(TableName dbTableName) throws AnalysisException {
+ private TableIf validateTableName(TableName dbTableName) throws AnalysisException {
String dbName = dbTableName.getDb();
String tableName = dbTableName.getTbl();
- Database db = Catalog.getCurrentCatalog().getDbOrAnalysisException(dbName);
+ DatabaseIf db = Catalog.getCurrentInternalCatalog().getDbOrAnalysisException(dbName);
return db.getTableOrAnalysisException(tableName);
}
@@ -168,8 +170,8 @@ public class StatisticsManager {
long tblId = categoryDesc.getTableId();
String columnName = categoryDesc.getColumnName();
- Database db = Catalog.getCurrentCatalog().getDbOrAnalysisException(dbId);
- Table table = db.getTableOrAnalysisException(tblId);
+ DatabaseIf db = Catalog.getCurrentInternalCatalog().getDbOrAnalysisException(dbId);
+ TableIf table = db.getTableOrAnalysisException(tblId);
if (!Strings.isNullOrEmpty(columnName)) {
Column column = table.getColumn(columnName);
if (column == null) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/system/Diagnoser.java b/fe/fe-core/src/main/java/org/apache/doris/system/Diagnoser.java
index 083b476558..a818673241 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/system/Diagnoser.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/system/Diagnoser.java
@@ -60,7 +60,7 @@ public class Diagnoser {
results.add(Lists.newArrayList("TabletExist", "Yes", ""));
results.add(Lists.newArrayList("TabletId", String.valueOf(tabletId), ""));
// database
- Database db = Catalog.getCurrentCatalog().getDbNullable(tabletMeta.getDbId());
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable(tabletMeta.getDbId());
if (db == null) {
results.add(Lists.newArrayList("Database", "Not exist", ""));
return results;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/system/SystemInfoService.java b/fe/fe-core/src/main/java/org/apache/doris/system/SystemInfoService.java
index 65368abc9b..5c51163719 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/system/SystemInfoService.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/system/SystemInfoService.java
@@ -860,7 +860,7 @@ public class SystemInfoService {
public void updateBackendReportVersion(long backendId, long newReportVersion, long dbId, long tableId) {
AtomicLong atomicLong;
if ((atomicLong = idToReportVersionRef.get(backendId)) != null) {
- Database db = Catalog.getCurrentCatalog().getDbNullable(dbId);
+ Database db = (Database) Catalog.getCurrentInternalCatalog().getDbNullable(dbId);
if (db == null) {
LOG.warn("failed to update backend report version, db {} does not exist", dbId);
return;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/task/ExportPendingTask.java b/fe/fe-core/src/main/java/org/apache/doris/task/ExportPendingTask.java
index 8f0bee66a5..f55d459ff7 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/task/ExportPendingTask.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/task/ExportPendingTask.java
@@ -58,7 +58,7 @@ public class ExportPendingTask extends MasterTask {
}
long dbId = job.getDbId();
- db = Catalog.getCurrentCatalog().getDbNullable(dbId);
+ db = Catalog.getCurrentInternalCatalog().getDbNullable(dbId);
if (db == null) {
job.cancel(ExportFailMsg.CancelType.RUN_FAIL, "database does not exist");
return;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/task/LoadEtlTask.java b/fe/fe-core/src/main/java/org/apache/doris/task/LoadEtlTask.java
index c7bfbdb19e..8e56d71f37 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/task/LoadEtlTask.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/task/LoadEtlTask.java
@@ -83,7 +83,7 @@ public abstract class LoadEtlTask extends MasterTask {
// check db
long dbId = job.getDbId();
- db = Catalog.getCurrentCatalog().getDbNullable(dbId);
+ db = Catalog.getCurrentInternalCatalog().getDbNullable(dbId);
if (db == null) {
load.cancelLoadJob(job, CancelType.ETL_RUN_FAIL, "db does not exist. id: " + dbId);
return;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/task/LoadPendingTask.java b/fe/fe-core/src/main/java/org/apache/doris/task/LoadPendingTask.java
index b39f2ddaca..21b018b778 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/task/LoadPendingTask.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/task/LoadPendingTask.java
@@ -68,7 +68,7 @@ public abstract class LoadPendingTask extends MasterTask {
// get db
long dbId = job.getDbId();
- db = Catalog.getCurrentCatalog().getDbNullable(dbId);
+ db = Catalog.getCurrentInternalCatalog().getDbNullable(dbId);
if (db == null) {
load.cancelLoadJob(job, CancelType.ETL_SUBMIT_FAIL, "db does not exist. id: " + dbId);
return;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/transaction/DatabaseTransactionMgr.java b/fe/fe-core/src/main/java/org/apache/doris/transaction/DatabaseTransactionMgr.java
index f65189cf1c..dad603539e 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/transaction/DatabaseTransactionMgr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/transaction/DatabaseTransactionMgr.java
@@ -25,6 +25,7 @@ import org.apache.doris.catalog.Partition;
import org.apache.doris.catalog.PartitionInfo;
import org.apache.doris.catalog.Replica;
import org.apache.doris.catalog.Table;
+import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.Tablet;
import org.apache.doris.catalog.TabletInvertedIndex;
import org.apache.doris.catalog.TabletMeta;
@@ -349,7 +350,7 @@ public class DatabaseTransactionMgr {
}
private void checkDatabaseDataQuota() throws MetaNotFoundException, QuotaExceedException {
- Database db = catalog.getDbOrMetaException(dbId);
+ Database db = catalog.getInternalDataSource().getDbOrMetaException(dbId);
if (usedQuotaDataBytes == -1) {
usedQuotaDataBytes = db.getUsedDataQuotaWithLock();
@@ -370,7 +371,7 @@ public class DatabaseTransactionMgr {
throws UserException {
// check status
// the caller method already own db lock, we do not obtain db lock here
- Database db = catalog.getDbOrMetaException(dbId);
+ Database db = catalog.getInternalDataSource().getDbOrMetaException(dbId);
TransactionState transactionState;
readLock();
try {
@@ -415,7 +416,7 @@ public class DatabaseTransactionMgr {
List<TabletCommitInfo> tabletCommitInfos, TxnCommitAttachment txnCommitAttachment,
Set<Long> errorReplicaIds, Map<Long, Set<Long>> tableToPartition,
Set<Long> totalInvolvedBackends) throws UserException {
- Database db = catalog.getDbOrMetaException(dbId);
+ Database db = catalog.getInternalDataSource().getDbOrMetaException(dbId);
// update transaction state extra if exists
if (txnCommitAttachment != null) {
@@ -577,7 +578,7 @@ public class DatabaseTransactionMgr {
throws UserException {
// check status
// the caller method already own tables' write lock
- Database db = catalog.getDbOrMetaException(dbId);
+ Database db = catalog.getInternalDataSource().getDbOrMetaException(dbId);
TransactionState transactionState;
readLock();
try {
@@ -813,9 +814,9 @@ public class DatabaseTransactionMgr {
// the transaction with empty commit info only three cases mentioned above may happen, because user cannot
// drop table without force while there are committed transactions on table and writeLockTablesIfExist is
// a blocking function, the returned result would be the existed table list which hold write lock
- Database db = catalog.getDbOrMetaException(transactionState.getDbId());
+ Database db = catalog.getInternalDataSource().getDbOrMetaException(transactionState.getDbId());
List<Long> tableIdList = transactionState.getTableIdList();
- List<Table> tableList = db.getTablesOnIdOrderIfExist(tableIdList);
+ List<? extends TableIf> tableList = db.getTablesOnIdOrderIfExist(tableIdList);
tableList = MetaLockUtils.writeLockTablesIfExist(tableList);
try {
boolean hasError = false;
@@ -1431,7 +1432,7 @@ public class DatabaseTransactionMgr {
List<List<String>> infos = new ArrayList<List<String>>();
readLock();
try {
- Database db = Catalog.getCurrentCatalog().getDbOrAnalysisException(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrAnalysisException(dbId);
TransactionState txnState = unprotectedGetTransactionState(txnId);
if (txnState == null) {
throw new AnalysisException("transaction with id " + txnId + " does not exist");
@@ -1668,9 +1669,9 @@ public class DatabaseTransactionMgr {
boolean shouldAddTableListLock = transactionState.getTransactionStatus() == TransactionStatus.COMMITTED
|| transactionState.getTransactionStatus() == TransactionStatus.VISIBLE;
Database db = null;
- List<Table> tableList = null;
+ List<? extends TableIf> tableList = null;
if (shouldAddTableListLock) {
- db = catalog.getDbOrMetaException(transactionState.getDbId());
+ db = catalog.getInternalDataSource().getDbOrMetaException(transactionState.getDbId());
tableList = db.getTablesOnIdOrderIfExist(transactionState.getTableIdList());
tableList = MetaLockUtils.writeLockTablesIfExist(tableList);
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/transaction/DbUsedDataQuotaInfoCollector.java b/fe/fe-core/src/main/java/org/apache/doris/transaction/DbUsedDataQuotaInfoCollector.java
index 5086068803..fb79211127 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/transaction/DbUsedDataQuotaInfoCollector.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/transaction/DbUsedDataQuotaInfoCollector.java
@@ -42,10 +42,10 @@ public class DbUsedDataQuotaInfoCollector extends MasterDaemon {
private void updateAllDatabaseUsedDataQuota() {
Catalog catalog = Catalog.getCurrentCatalog();
- List<Long> dbIdList = catalog.getDbIds();
+ List<Long> dbIdList = catalog.getInternalDataSource().getDbIds();
GlobalTransactionMgr globalTransactionMgr = catalog.getGlobalTransactionMgr();
for (Long dbId : dbIdList) {
- Database db = catalog.getDbNullable(dbId);
+ Database db = catalog.getInternalDataSource().getDbNullable(dbId);
if (db == null) {
LOG.warn("Database [" + dbId + "] does not exist, skip to update database used data quota");
continue;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/transaction/GlobalTransactionMgr.java b/fe/fe-core/src/main/java/org/apache/doris/transaction/GlobalTransactionMgr.java
index 03513c4833..142f1e00ef 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/transaction/GlobalTransactionMgr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/transaction/GlobalTransactionMgr.java
@@ -443,7 +443,7 @@ public class GlobalTransactionMgr implements Writable {
for (long dbId : dbIds) {
List<Comparable> info = new ArrayList<Comparable>();
info.add(dbId);
- Database db = Catalog.getCurrentCatalog().getDbNullable(dbId);
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable(dbId);
if (db == null) {
continue;
}
@@ -602,7 +602,7 @@ public class GlobalTransactionMgr implements Writable {
long dbId = request.getDbId();
int commitTimeoutSec = Config.commit_timeout_second;
for (int i = 0; i < commitTimeoutSec; ++i) {
- Catalog.getCurrentCatalog().getDbOrAnalysisException(dbId);
+ Catalog.getCurrentInternalCatalog().getDbOrAnalysisException(dbId);
TWaitingTxnStatusResult statusResult = new TWaitingTxnStatusResult();
statusResult.status = new TStatus();
TransactionStatus txnStatus = null;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/transaction/PublishVersionDaemon.java b/fe/fe-core/src/main/java/org/apache/doris/transaction/PublishVersionDaemon.java
index 87edcf6885..f8dacb96da 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/transaction/PublishVersionDaemon.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/transaction/PublishVersionDaemon.java
@@ -190,7 +190,8 @@ public class PublishVersionDaemon extends MasterDaemon {
continue;
}
- Database db = Catalog.getCurrentCatalog().getDbNullable(transactionState.getDbId());
+ Database db = Catalog.getCurrentInternalCatalog()
+ .getDbNullable(transactionState.getDbId());
if (db == null) {
LOG.warn("Database [{}] has been dropped.", transactionState.getDbId());
continue;
diff --git a/fe/fe-core/src/test/java/org/apache/doris/alter/AlterJobV2Test.java b/fe/fe-core/src/test/java/org/apache/doris/alter/AlterJobV2Test.java
index 3eb7f1abf7..2ab9f212f3 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/alter/AlterJobV2Test.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/alter/AlterJobV2Test.java
@@ -113,7 +113,8 @@ public class AlterJobV2Test {
System.out.println("alter job " + alterJobV2.getDbId() + " is done. state: " + alterJobV2.getJobState());
Assert.assertEquals(AlterJobV2.JobState.FINISHED, alterJobV2.getJobState());
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException(alterJobV2.getDbId());
+ Database db =
+ Catalog.getCurrentInternalCatalog().getDbOrMetaException(alterJobV2.getDbId());
OlapTable tbl = (OlapTable) db.getTableOrMetaException(alterJobV2.getTableId(), Table.TableType.OLAP);
while (tbl.getState() != OlapTable.OlapTableState.NORMAL) {
Thread.sleep(1000);
diff --git a/fe/fe-core/src/test/java/org/apache/doris/alter/AlterTest.java b/fe/fe-core/src/test/java/org/apache/doris/alter/AlterTest.java
index b1684cb75a..62dd02d6dc 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/alter/AlterTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/alter/AlterTest.java
@@ -291,7 +291,7 @@ public class AlterTest {
@Test
public void alterTableModifyComment() throws Exception {
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException("default_cluster:test");
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException("default_cluster:test");
Table tbl = db.getTableOrMetaException("tbl5");
// table comment
@@ -371,7 +371,7 @@ public class AlterTest {
+ "'dynamic_partition.buckets' = '3'\n"
+ " );";
alterTable(stmt, false);
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException("default_cluster:test");
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException("default_cluster:test");
OlapTable tbl = (OlapTable) db.getTableOrMetaException("tbl1");
Assert.assertTrue(tbl.getTableProperty().getDynamicPartitionProperty().getEnable());
Assert.assertEquals(4, tbl.getIndexIdToSchema().size());
@@ -428,7 +428,7 @@ public class AlterTest {
// test batch update range partitions' properties
@Test
public void testBatchUpdatePartitionProperties() throws Exception {
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException("default_cluster:test");
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException("default_cluster:test");
OlapTable tbl4 = (OlapTable) db.getTableOrMetaException("tbl4");
Partition p1 = tbl4.getPartition("p1");
Partition p2 = tbl4.getPartition("p2");
@@ -502,7 +502,7 @@ public class AlterTest {
@Test
public void testAlterRemoteStorageTableDataProperties() throws Exception {
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException("default_cluster:test");
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException("default_cluster:test");
OlapTable tblRemote = (OlapTable) db.getTableOrMetaException("tbl_remote");
Partition p1 = tblRemote.getPartition("p1");
Partition p2 = tblRemote.getPartition("p2");
@@ -570,7 +570,7 @@ public class AlterTest {
alterTable(stmt, false);
Thread.sleep(5000); // sleep to wait dynamic partition scheduler run
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException("default_cluster:test");
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException("default_cluster:test");
OlapTable tbl = (OlapTable) db.getTableOrMetaException("tbl3");
Assert.assertEquals(4, tbl.getPartitionNames().size());
Assert.assertNull(tbl.getPartition("p1"));
@@ -589,7 +589,8 @@ public class AlterTest {
}
System.out.println(alterJobV2.getType() + " alter job " + alterJobV2.getJobId() + " is done. state: " + alterJobV2.getJobState());
Assert.assertEquals(AlterJobV2.JobState.FINISHED, alterJobV2.getJobState());
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException(alterJobV2.getDbId());
+ Database db =
+ Catalog.getCurrentInternalCatalog().getDbOrMetaException(alterJobV2.getDbId());
OlapTable tbl = (OlapTable) db.getTableOrMetaException(alterJobV2.getTableId());
while (tbl.getState() != OlapTable.OlapTableState.NORMAL) {
Thread.sleep(1000);
@@ -729,7 +730,7 @@ public class AlterTest {
createTable(stmt2);
createTable(stmt3);
createTable(stmt4);
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException("default_cluster:test");
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException("default_cluster:test");
// table name -> tabletIds
Map<String, List<Long>> tblNameToTabletIds = Maps.newHashMap();
@@ -841,7 +842,7 @@ public class AlterTest {
+ "PROPERTIES(\"replication_num\" = \"1\");";
createTable(stmt);
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException("default_cluster:test");
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException("default_cluster:test");
String modifyBucketNumStmt = "ALTER TABLE test.bucket MODIFY DISTRIBUTION DISTRIBUTED BY HASH(k1) BUCKETS 1;";
alterTable(modifyBucketNumStmt, false);
@@ -938,7 +939,7 @@ public class AlterTest {
// external table support add column
stmt = "alter table test.odbc_table add column k6 INT KEY after k1, add column k7 TINYINT KEY after k6";
alterTable(stmt, false);
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException("default_cluster:test");
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException("default_cluster:test");
Table odbcTable = db.getTableOrMetaException("odbc_table");
Assert.assertEquals(odbcTable.getBaseSchema().size(), 7);
Assert.assertEquals(odbcTable.getBaseSchema().get(1).getDataType(), PrimitiveType.INT);
@@ -947,20 +948,20 @@ public class AlterTest {
// external table support drop column
stmt = "alter table test.odbc_table drop column k7";
alterTable(stmt, false);
- db = Catalog.getCurrentCatalog().getDbOrMetaException("default_cluster:test");
+ db = Catalog.getCurrentInternalCatalog().getDbOrMetaException("default_cluster:test");
odbcTable = db.getTableOrMetaException("odbc_table");
Assert.assertEquals(odbcTable.getBaseSchema().size(), 6);
// external table support modify column
stmt = "alter table test.odbc_table modify column k6 bigint after k5";
alterTable(stmt, false);
- db = Catalog.getCurrentCatalog().getDbOrMetaException("default_cluster:test");
+ db = Catalog.getCurrentInternalCatalog().getDbOrMetaException("default_cluster:test");
odbcTable = db.getTableOrMetaException("odbc_table");
Assert.assertEquals(odbcTable.getBaseSchema().size(), 6);
Assert.assertEquals(odbcTable.getBaseSchema().get(5).getDataType(), PrimitiveType.BIGINT);
// external table support reorder column
- db = Catalog.getCurrentCatalog().getDbOrMetaException("default_cluster:test");
+ db = Catalog.getCurrentInternalCatalog().getDbOrMetaException("default_cluster:test");
odbcTable = db.getTableOrMetaException("odbc_table");
Assert.assertTrue(odbcTable.getBaseSchema().stream()
.map(column -> column.getName())
@@ -991,7 +992,7 @@ public class AlterTest {
// external table support rename operation
stmt = "alter table test.odbc_table rename oracle_table";
alterTable(stmt, false);
- db = Catalog.getCurrentCatalog().getDbOrMetaException("default_cluster:test");
+ db = Catalog.getCurrentInternalCatalog().getDbOrMetaException("default_cluster:test");
odbcTable = db.getTableNullable("oracle_table");
Assert.assertNotNull(odbcTable);
odbcTable = db.getTableNullable("odbc_table");
@@ -1017,7 +1018,7 @@ public class AlterTest {
+ ");";
createTable(createOlapTblStmt);
- Database db = Catalog.getCurrentCatalog().getDbNullable("default_cluster:test");
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable("default_cluster:test");
MysqlTable mysqlTable = (MysqlTable) db.getTableOrMetaException("mysql_table", Table.TableType.MYSQL);
String alterEngineStmt = "alter table test.mysql_table modify engine to odbc";
diff --git a/fe/fe-core/src/test/java/org/apache/doris/alter/BatchRollupJobTest.java b/fe/fe-core/src/test/java/org/apache/doris/alter/BatchRollupJobTest.java
index 08d09c076c..7ced1aabb8 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/alter/BatchRollupJobTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/alter/BatchRollupJobTest.java
@@ -61,7 +61,7 @@ public class BatchRollupJobTest {
String createDbStmtStr = "create database if not exists db1;";
CreateDbStmt createDbStmt = (CreateDbStmt) UtFrameUtils.parseAndAnalyzeStmt(createDbStmtStr, ctx);
Catalog.getCurrentCatalog().createDb(createDbStmt);
- System.out.println(Catalog.getCurrentCatalog().getDbNames());
+ System.out.println(Catalog.getCurrentInternalCatalog().getDbNames());
}
@Test
@@ -79,7 +79,7 @@ public class BatchRollupJobTest {
Map<Long, AlterJobV2> alterJobs = Catalog.getCurrentCatalog().getMaterializedViewHandler().getAlterJobsV2();
Assert.assertEquals(3, alterJobs.size());
- Database db = Catalog.getCurrentCatalog().getDbNullable("default_cluster:db1");
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable("default_cluster:db1");
Assert.assertNotNull(db);
OlapTable tbl = (OlapTable) db.getTableNullable("tbl1");
Assert.assertNotNull(tbl);
@@ -130,7 +130,7 @@ public class BatchRollupJobTest {
Assert.assertEquals(3, alterJobs.size());
List<Long> jobIds = Lists.newArrayList(alterJobs.keySet());
- Database db = Catalog.getCurrentCatalog().getDbNullable("default_cluster:db1");
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable("default_cluster:db1");
Assert.assertNotNull(db);
OlapTable tbl = (OlapTable) db.getTableNullable("tbl2");
Assert.assertNotNull(tbl);
diff --git a/fe/fe-core/src/test/java/org/apache/doris/alter/RollupJobV2Test.java b/fe/fe-core/src/test/java/org/apache/doris/alter/RollupJobV2Test.java
index 257ea1b695..bb83a15d34 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/alter/RollupJobV2Test.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/alter/RollupJobV2Test.java
@@ -149,7 +149,7 @@ public class RollupJobV2Test {
ArrayList<AlterClause> alterClauses = new ArrayList<>();
alterClauses.add(clause);
alterClauses.add(clause2);
- Database db = masterCatalog.getDbOrDdlException(CatalogTestUtil.testDbId1);
+ Database db = masterCatalog.getInternalDataSource().getDbOrDdlException(CatalogTestUtil.testDbId1);
OlapTable olapTable = (OlapTable) db.getTableOrDdlException(CatalogTestUtil.testTableId1);
materializedViewHandler.process(alterClauses, db.getClusterName(), db, olapTable);
Map<Long, AlterJobV2> alterJobsV2 = materializedViewHandler.getAlterJobsV2();
@@ -169,7 +169,7 @@ public class RollupJobV2Test {
MaterializedViewHandler materializedViewHandler = Catalog.getCurrentCatalog().getMaterializedViewHandler();
ArrayList<AlterClause> alterClauses = new ArrayList<>();
alterClauses.add(clause);
- Database db = masterCatalog.getDbOrDdlException(CatalogTestUtil.testDbId1);
+ Database db = masterCatalog.getInternalDataSource().getDbOrDdlException(CatalogTestUtil.testDbId1);
OlapTable olapTable = (OlapTable) db.getTableOrDdlException(CatalogTestUtil.testTableId1);
materializedViewHandler.process(alterClauses, db.getClusterName(), db, olapTable);
Map<Long, AlterJobV2> alterJobsV2 = materializedViewHandler.getAlterJobsV2();
@@ -188,7 +188,7 @@ public class RollupJobV2Test {
// add a rollup job
ArrayList<AlterClause> alterClauses = new ArrayList<>();
alterClauses.add(clause);
- Database db = masterCatalog.getDbOrDdlException(CatalogTestUtil.testDbId1);
+ Database db = masterCatalog.getInternalDataSource().getDbOrDdlException(CatalogTestUtil.testDbId1);
OlapTable olapTable = (OlapTable) db.getTableOrDdlException(CatalogTestUtil.testTableId1);
Partition testPartition = olapTable.getPartition(CatalogTestUtil.testPartitionId1);
materializedViewHandler.process(alterClauses, db.getClusterName(), db, olapTable);
@@ -240,7 +240,7 @@ public class RollupJobV2Test {
// add a rollup job
ArrayList<AlterClause> alterClauses = new ArrayList<>();
alterClauses.add(clause);
- Database db = masterCatalog.getDbOrDdlException(CatalogTestUtil.testDbId1);
+ Database db = masterCatalog.getInternalDataSource().getDbOrDdlException(CatalogTestUtil.testDbId1);
OlapTable olapTable = (OlapTable) db.getTableOrDdlException(CatalogTestUtil.testTableId1);
Partition testPartition = olapTable.getPartition(CatalogTestUtil.testPartitionId1);
materializedViewHandler.process(alterClauses, db.getClusterName(), db, olapTable);
@@ -373,7 +373,7 @@ public class RollupJobV2Test {
fakeEditLog = new FakeEditLog();
FakeCatalog.setCatalog(masterCatalog);
MaterializedViewHandler materializedViewHandler = Catalog.getCurrentCatalog().getMaterializedViewHandler();
- Database db = masterCatalog.getDbOrDdlException(CatalogTestUtil.testDbId1);
+ Database db = masterCatalog.getInternalDataSource().getDbOrDdlException(CatalogTestUtil.testDbId1);
OlapTable olapTable = (OlapTable) db.getTableOrDdlException(CatalogTestUtil.testTableId2);
AddRollupClause addRollupClause = new AddRollupClause("r1", Lists.newArrayList("k1", "v1", "v2"), null, CatalogTestUtil.testIndex2, null);
diff --git a/fe/fe-core/src/test/java/org/apache/doris/alter/SchemaChangeJobV2Test.java b/fe/fe-core/src/test/java/org/apache/doris/alter/SchemaChangeJobV2Test.java
index 62a6187064..02771d213e 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/alter/SchemaChangeJobV2Test.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/alter/SchemaChangeJobV2Test.java
@@ -129,7 +129,7 @@ public class SchemaChangeJobV2Test {
SchemaChangeHandler schemaChangeHandler = Catalog.getCurrentCatalog().getSchemaChangeHandler();
ArrayList<AlterClause> alterClauses = new ArrayList<>();
alterClauses.add(addColumnClause);
- Database db = masterCatalog.getDbOrDdlException(CatalogTestUtil.testDbId1);
+ Database db = masterCatalog.getInternalDataSource().getDbOrDdlException(CatalogTestUtil.testDbId1);
OlapTable olapTable = (OlapTable) db.getTableOrDdlException(CatalogTestUtil.testTableId1);
schemaChangeHandler.process(alterClauses, "default_cluster", db, olapTable);
Map<Long, AlterJobV2> alterJobsV2 = schemaChangeHandler.getAlterJobsV2();
@@ -148,7 +148,7 @@ public class SchemaChangeJobV2Test {
// add a schema change job
ArrayList<AlterClause> alterClauses = new ArrayList<>();
alterClauses.add(addColumnClause);
- Database db = masterCatalog.getDbOrDdlException(CatalogTestUtil.testDbId1);
+ Database db = masterCatalog.getInternalDataSource().getDbOrDdlException(CatalogTestUtil.testDbId1);
OlapTable olapTable = (OlapTable) db.getTableOrDdlException(CatalogTestUtil.testTableId1);
Partition testPartition = olapTable.getPartition(CatalogTestUtil.testPartitionId1);
schemaChangeHandler.process(alterClauses, "default_cluster", db, olapTable);
@@ -224,7 +224,7 @@ public class SchemaChangeJobV2Test {
// add a schema change job
ArrayList<AlterClause> alterClauses = new ArrayList<>();
alterClauses.add(addColumnClause);
- Database db = masterCatalog.getDbOrDdlException(CatalogTestUtil.testDbId1);
+ Database db = masterCatalog.getInternalDataSource().getDbOrDdlException(CatalogTestUtil.testDbId1);
OlapTable olapTable = (OlapTable) db.getTableOrDdlException(CatalogTestUtil.testTableId1);
Partition testPartition = olapTable.getPartition(CatalogTestUtil.testPartitionId1);
schemaChangeHandler.process(alterClauses, "default_cluster", db, olapTable);
@@ -426,7 +426,7 @@ public class SchemaChangeJobV2Test {
fakeCatalog = new FakeCatalog();
fakeEditLog = new FakeEditLog();
FakeCatalog.setCatalog(masterCatalog);
- Database db = masterCatalog.getDb(CatalogTestUtil.testDbId1).get();
+ Database db = masterCatalog.getInternalDataSource().getDb(CatalogTestUtil.testDbId1).get();
OlapTable olapTable = (OlapTable) db.getTable(CatalogTestUtil.testTableId1).get();
Catalog.getCurrentCatalog().convertDistributionType(db, olapTable);
Assert.assertTrue(olapTable.getDefaultDistributionInfo().getType() == DistributionInfo.DistributionInfoType.RANDOM);
diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/AccessTestUtil.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/AccessTestUtil.java
index 19043643af..69c18a5c06 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/analysis/AccessTestUtil.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/AccessTestUtil.java
@@ -101,39 +101,56 @@ public class AccessTestUtil {
List<Column> baseSchema = new LinkedList<Column>();
Column column = new Column();
baseSchema.add(column);
- OlapTable table = new OlapTable(30000, "testTbl", baseSchema,
- KeysType.AGG_KEYS, new SinglePartitionInfo(), distributionInfo);
- table.setIndexMeta(baseIndex.getId(), "testTbl", baseSchema, 0, 1, (short) 1,
- TStorageType.COLUMN, KeysType.AGG_KEYS);
+ OlapTable table = new OlapTable(30000, "testTbl", baseSchema, KeysType.AGG_KEYS, new SinglePartitionInfo(),
+ distributionInfo);
+ table.setIndexMeta(baseIndex.getId(), "testTbl", baseSchema, 0, 1, (short) 1, TStorageType.COLUMN,
+ KeysType.AGG_KEYS);
table.addPartition(partition);
table.setBaseIndexId(baseIndex.getId());
db.createTable(table);
- new Expectations(catalog) {
+ InternalDataSource ds = Deencapsulation.newInstance(InternalDataSource.class);
+ new Expectations(ds) {
{
- catalog.getAuth();
- minTimes = 0;
- result = paloAuth;
-
- catalog.getDbNullable(50000L);
+ ds.getDbNullable(50000L);
minTimes = 0;
result = db;
- catalog.getDbNullable("testCluster:testDb");
+ ds.getDbNullable("testCluster:testDb");
minTimes = 0;
result = db;
- catalog.getDbNullable("testCluster:emptyDb");
+ ds.getDbNullable("testCluster:emptyDb");
minTimes = 0;
result = null;
- catalog.getDbNullable(anyString);
+ ds.getDbNullable(anyString);
minTimes = 0;
result = new Database();
- catalog.getDbNames();
+ ds.getDbNames();
+ minTimes = 0;
+ result = Lists.newArrayList("testCluster:testDb");
+
+ ds.getClusterDbNames("testCluster");
minTimes = 0;
result = Lists.newArrayList("testCluster:testDb");
+ }
+ };
+
+ new Expectations(catalog, ds) {
+ {
+ catalog.getAuth();
+ minTimes = 0;
+ result = paloAuth;
+
+ catalog.getCurrentDataSource();
+ minTimes = 0;
+ result = ds;
+
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
catalog.getEditLog();
minTimes = 0;
@@ -143,7 +160,7 @@ public class AccessTestUtil {
minTimes = 0;
result = new Load();
- catalog.getClusterDbNames("testCluster");
+ ds.getClusterDbNames("testCluster");
minTimes = 0;
result = Lists.newArrayList("testCluster:testDb");
@@ -190,6 +207,10 @@ public class AccessTestUtil {
public static OlapTable mockTable(String name) {
Column column1 = new Column("col1", PrimitiveType.BIGINT);
Column column2 = new Column("col2", PrimitiveType.DOUBLE);
+ Column column3 = new Column("k1", PrimitiveType.VARCHAR);
+ Column column4 = new Column("k2", PrimitiveType.VARCHAR);
+ Column column5 = new Column("k3", PrimitiveType.VARCHAR);
+ Column column6 = new Column("k4", PrimitiveType.BIGINT);
MaterializedIndex index = new MaterializedIndex();
new Expectations(index) {
@@ -223,6 +244,22 @@ public class AccessTestUtil {
table.getPartition(40000L);
minTimes = 0;
result = partition;
+
+ table.getColumn("k1");
+ minTimes = 0;
+ result = column3;
+
+ table.getColumn("k2");
+ minTimes = 0;
+ result = column4;
+
+ table.getColumn("k3");
+ minTimes = 0;
+ result = column5;
+
+ table.getColumn("k4");
+ minTimes = 0;
+ result = column6;
}
};
return table;
@@ -238,6 +275,10 @@ public class AccessTestUtil {
minTimes = 0;
result = olapTable;
+ db.getTableNullable("t");
+ minTimes = 0;
+ result = olapTable;
+
db.getTableNullable("emptyTable");
minTimes = 0;
result = null;
@@ -271,41 +312,62 @@ public class AccessTestUtil {
PaloAuth paloAuth = fetchBlockAccess();
Database db = mockDb("testCluster:testDb");
- new Expectations(catalog) {
+ InternalDataSource ds = Deencapsulation.newInstance(InternalDataSource.class);
+ new Expectations(ds) {
{
- catalog.getAuth();
+ ds.getDbNullable("testCluster:testDb");
minTimes = 0;
- result = paloAuth;
+ result = db;
- catalog.changeDb((ConnectContext) any, anyString);
+ ds.getDbNullable("testCluster:testdb");
minTimes = 0;
- result = new DdlException("failed");
+ result = db;
- catalog.getDbNullable("testCluster:testDb");
+ ds.getDbOrAnalysisException("testdb");
minTimes = 0;
result = db;
- catalog.getDbNullable("testCluster:emptyDb");
+ ds.getDbNullable("testCluster:emptyDb");
minTimes = 0;
result = null;
- catalog.getDbNullable(anyString);
+ ds.getDbNullable(anyString);
minTimes = 0;
result = new Database();
- catalog.getDbNames();
+ ds.getDbNames();
minTimes = 0;
result = Lists.newArrayList("testCluster:testDb");
- catalog.getClusterDbNames("testCluster");
+ ds.getClusterDbNames("testCluster");
minTimes = 0;
result = Lists.newArrayList("testCluster:testDb");
- catalog.getDbNullable("emptyCluster");
+ ds.getDbNullable("emptyCluster");
minTimes = 0;
result = null;
}
};
+
+ new Expectations(catalog) {
+ {
+ catalog.getAuth();
+ minTimes = 0;
+ result = paloAuth;
+
+ catalog.changeDb((ConnectContext) any, anyString);
+ minTimes = 0;
+ result = new DdlException("failed");
+
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+
+ catalog.getCurrentDataSource();
+ minTimes = 0;
+ result = ds;
+ }
+ };
return catalog;
} catch (DdlException e) {
return null;
@@ -488,6 +550,7 @@ public class AccessTestUtil {
result = "testDb";
}
};
+
Catalog catalog = fetchBlockCatalog();
Analyzer analyzer = new Analyzer(catalog, new ConnectContext(null));
new Expectations(analyzer) {
@@ -500,10 +563,6 @@ public class AccessTestUtil {
minTimes = 0;
result = "testDb";
- analyzer.getTableOrAnalysisException((TableName) any);
- minTimes = 0;
- result = table;
-
analyzer.getQualifiedUser();
minTimes = 0;
result = "testUser";
diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/AdminShowReplicaTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/AdminShowReplicaTest.java
index 6401689302..7eab559cd4 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/analysis/AdminShowReplicaTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/AdminShowReplicaTest.java
@@ -67,7 +67,7 @@ public class AdminShowReplicaTest extends TestWithFeService {
Assert.assertEquals(4, resultSet.getResultRows().get(0).size());
// update tablets' data size and row count
- Database db = Catalog.getCurrentCatalog().getDbOrAnalysisException("default_cluster:test");
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrAnalysisException("default_cluster:test");
OlapTable olapTable = db.getOlapTableOrAnalysisException("tbl1");
for (Partition partition : olapTable.getPartitions()) {
for (MaterializedIndex index : partition.getMaterializedIndices(MaterializedIndex.IndexExtState.VISIBLE)) {
diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateDataSyncJobStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateDataSyncJobStmtTest.java
index 7b78058d3f..00aa2d59b8 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateDataSyncJobStmtTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateDataSyncJobStmtTest.java
@@ -22,6 +22,7 @@ import org.apache.doris.catalog.Database;
import org.apache.doris.catalog.KeysType;
import org.apache.doris.catalog.OlapTable;
import org.apache.doris.common.UserException;
+import org.apache.doris.datasource.InternalDataSource;
import org.apache.doris.load.sync.DataSyncJobType;
import org.apache.doris.mysql.privilege.PaloAuth;
import org.apache.doris.mysql.privilege.PrivPredicate;
@@ -52,6 +53,8 @@ public class CreateDataSyncJobStmtTest {
@Mocked
Catalog catalog;
@Mocked
+ InternalDataSource ds;
+ @Mocked
Analyzer analyzer;
@Mocked
PaloAuth auth;
@@ -65,7 +68,11 @@ public class CreateDataSyncJobStmtTest {
properties = Maps.newHashMap();
new Expectations() {
{
- catalog.getDbNullable("testCluster:testDb");
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+
+ ds.getDbNullable("testCluster:testDb");
minTimes = 0;
result = database;
diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateRoutineLoadStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateRoutineLoadStmtTest.java
index bbc27b8576..7c0e0e06b7 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateRoutineLoadStmtTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateRoutineLoadStmtTest.java
@@ -22,6 +22,7 @@ import org.apache.doris.catalog.Database;
import org.apache.doris.catalog.OlapTable;
import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.UserException;
+import org.apache.doris.datasource.InternalDataSource;
import org.apache.doris.load.loadv2.LoadTask;
import org.apache.doris.load.routineload.LoadDataSourceType;
import org.apache.doris.qe.ConnectContext;
@@ -52,6 +53,8 @@ public class CreateRoutineLoadStmtTest {
@Mocked
private Catalog catalog;
+ @Mocked
+ private InternalDataSource ds;
@Mocked
private ConnectContext ctx;
@@ -69,7 +72,11 @@ public class CreateRoutineLoadStmtTest {
};
new Expectations() {
{
- catalog.getDbNullable(anyString);
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+
+ ds.getDbNullable(anyString);
minTimes = 0;
result = database;
diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/DataDescriptionTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/DataDescriptionTest.java
index 247b838646..239a4d6444 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/analysis/DataDescriptionTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/DataDescriptionTest.java
@@ -23,6 +23,7 @@ import org.apache.doris.catalog.Database;
import org.apache.doris.catalog.OlapTable;
import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.jmockit.Deencapsulation;
+import org.apache.doris.datasource.InternalDataSource;
import org.apache.doris.load.loadv2.LoadTask;
import org.apache.doris.mysql.privilege.MockedAuth;
import org.apache.doris.mysql.privilege.PaloAuth;
@@ -55,6 +56,8 @@ public class DataDescriptionTest {
private Analyzer analyzer;
@Mocked
private Catalog catalog;
+ @Mocked
+ private InternalDataSource ds;
@Before
public void setUp() throws AnalysisException {
@@ -78,7 +81,11 @@ public class DataDescriptionTest {
minTimes = 0;
result = catalog;
- catalog.getDbNullable(anyString);
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+
+ ds.getDbNullable(anyString);
minTimes = 0;
result = db;
diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/DescribeStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/DescribeStmtTest.java
deleted file mode 100644
index 25f3e75daf..0000000000
--- a/fe/fe-core/src/test/java/org/apache/doris/analysis/DescribeStmtTest.java
+++ /dev/null
@@ -1,81 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-package org.apache.doris.analysis;
-
-import org.apache.doris.catalog.Catalog;
-import org.apache.doris.common.UserException;
-import org.apache.doris.qe.ConnectContext;
-
-import mockit.Mock;
-import mockit.MockUp;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-
-public class DescribeStmtTest {
- private Analyzer analyzer;
- private Catalog catalog;
- private ConnectContext ctx;
-
- @Before
- public void setUp() {
- ctx = new ConnectContext(null);
- ctx.setQualifiedUser("root");
- ctx.setRemoteIP("192.168.1.1");
-
- analyzer = AccessTestUtil.fetchAdminAnalyzer(true);
- catalog = AccessTestUtil.fetchAdminCatalog();
-
- new MockUp<ConnectContext>() {
- @Mock
- public ConnectContext get() {
- return ctx;
- }
- };
-
- new MockUp<Catalog>() {
- @Mock
- Catalog getCurrentCatalog() {
- return catalog;
- }
- };
- }
-
- @Ignore
- @Test
- public void testNormal() throws UserException {
- DescribeStmt stmt = new DescribeStmt(new TableName("", "testTbl"), false);
- stmt.analyze(analyzer);
- Assert.assertEquals("DESCRIBE `testCluster:testDb.testTbl`", stmt.toString());
- Assert.assertEquals(6, stmt.getMetaData().getColumnCount());
- Assert.assertEquals("testCluster:testDb", stmt.getDb());
- Assert.assertEquals("testTbl", stmt.getTableName());
- }
-
- @Test
- public void testAllNormal() throws UserException {
- DescribeStmt stmt = new DescribeStmt(new TableName("", "testTbl"), true);
- stmt.analyze(analyzer);
- Assert.assertEquals("DESCRIBE `testCluster:testDb.testTbl` ALL", stmt.toString());
- Assert.assertEquals(9, stmt.getMetaData().getColumnCount());
- Assert.assertEquals("IndexKeysType", stmt.getMetaData().getColumn(1).getName());
- Assert.assertEquals("testCluster:testDb", stmt.getDb());
- Assert.assertEquals("testTbl", stmt.getTableName());
- }
-}
diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/GroupByClauseTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/GroupByClauseTest.java
index 01039f62c1..87aefa413f 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/analysis/GroupByClauseTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/GroupByClauseTest.java
@@ -242,6 +242,7 @@ public class GroupByClauseTest {
try {
groupByClause.analyze(analyzer);
} catch (AnalysisException exception) {
+ exception.printStackTrace();
Assert.assertTrue(false);
}
}
diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/LoadStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/LoadStmtTest.java
index f5da3d1232..13988352d0 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/analysis/LoadStmtTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/LoadStmtTest.java
@@ -91,6 +91,9 @@ public class LoadStmtTest {
desc.toSql();
minTimes = 0;
result = "XXX";
+ desc.getTableName();
+ minTimes = 0;
+ result = "testTbl";
catalog.getResourceMgr();
result = resourceMgr;
resourceMgr.getResource(resourceName);
diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowDataStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowDataStmtTest.java
index 840c569005..ba78968e50 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowDataStmtTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowDataStmtTest.java
@@ -23,6 +23,8 @@ import org.apache.doris.catalog.Database;
import org.apache.doris.catalog.TabletInvertedIndex;
import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.UserException;
+import org.apache.doris.common.jmockit.Deencapsulation;
+import org.apache.doris.datasource.InternalDataSource;
import org.apache.doris.mysql.privilege.PaloAuth;
import org.apache.doris.mysql.privilege.PrivPredicate;
import org.apache.doris.qe.ConnectContext;
@@ -45,6 +47,8 @@ public class ShowDataStmtTest {
@Mocked
private Catalog catalog;
@Mocked
+ private InternalDataSource ds;
+ @Mocked
private ConnectContext ctx;
@Mocked
private TabletInvertedIndex invertedIndex;
@@ -54,9 +58,6 @@ public class ShowDataStmtTest {
@Before
public void setUp() throws UserException {
auth = new PaloAuth();
-
-
-
new Expectations() {
{
Catalog.getCurrentInvertedIndex();
@@ -66,6 +67,7 @@ public class ShowDataStmtTest {
};
db = CatalogMocker.mockDb();
+ ds = Deencapsulation.newInstance(InternalDataSource.class);
new Expectations() {
{
@@ -93,7 +95,11 @@ public class ShowDataStmtTest {
minTimes = 0;
result = auth;
- catalog.getDbOrAnalysisException(anyString);
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+
+ ds.getDbOrAnalysisException(anyString);
minTimes = 0;
result = db;
@@ -111,7 +117,6 @@ public class ShowDataStmtTest {
}
};
-
new Expectations() {
{
auth.checkGlobalPriv((ConnectContext) any, (PrivPredicate) any);
diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/TableNameComparedLowercaseTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/TableNameComparedLowercaseTest.java
index 0a9cfcc63e..ecf8e09dea 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/analysis/TableNameComparedLowercaseTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/TableNameComparedLowercaseTest.java
@@ -81,9 +81,9 @@ public class TableNameComparedLowercaseTest {
}
@Test
- public void testTableNameLowerCase() {
- Set<String> tableNames = Catalog.getCurrentCatalog()
- .getDbNullable("default_cluster:db1").getTableNamesWithLock();
+ public void testTableNameLowerCasTe() {
+ Set<String> tableNames = Catalog.getCurrentInternalCatalog().getDbNullable("default_cluster:db1")
+ .getTableNamesWithLock();
Assert.assertEquals(2, tableNames.size());
Assert.assertTrue(tableNames.contains("TABLE1"));
Assert.assertTrue(tableNames.contains("TABLE2"));
diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/TableNameStoredLowercaseTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/TableNameStoredLowercaseTest.java
index 89de4fc847..ee9fa65c70 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/analysis/TableNameStoredLowercaseTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/TableNameStoredLowercaseTest.java
@@ -81,8 +81,8 @@ public class TableNameStoredLowercaseTest {
@Test
public void testTableNameLowerCase() {
- Set<String> tableNames = Catalog.getCurrentCatalog()
- .getDbNullable("default_cluster:db1").getTableNamesWithLock();
+ Set<String> tableNames = Catalog.getCurrentInternalCatalog().getDbNullable("default_cluster:db1")
+ .getTableNamesWithLock();
Assert.assertEquals(2, tableNames.size());
Assert.assertTrue(tableNames.contains("table1"));
Assert.assertTrue(tableNames.contains("table2"));
diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/VirtualSlotRefTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/VirtualSlotRefTest.java
index f7e3abc3a7..843473d9a3 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/analysis/VirtualSlotRefTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/VirtualSlotRefTest.java
@@ -102,8 +102,6 @@ public class VirtualSlotRefTest {
Assert.assertTrue(v instanceof VirtualSlotRef);
Assert.assertTrue(((VirtualSlotRef) v).getRealSlots().get(0).equals(virtualSlot.getRealSlots().get(0)));
Assert.assertFalse(((VirtualSlotRef) v).getRealSlots().get(0) == virtualSlot.getRealSlots().get(0));
-
-
}
@Test
diff --git a/fe/fe-core/src/test/java/org/apache/doris/backup/BackupHandlerTest.java b/fe/fe-core/src/test/java/org/apache/doris/backup/BackupHandlerTest.java
index ae1ec2bc0e..4b7ead4069 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/backup/BackupHandlerTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/backup/BackupHandlerTest.java
@@ -40,6 +40,8 @@ import org.apache.doris.catalog.Tablet;
import org.apache.doris.catalog.TabletInvertedIndex;
import org.apache.doris.common.Config;
import org.apache.doris.common.FeConstants;
+import org.apache.doris.common.jmockit.Deencapsulation;
+import org.apache.doris.datasource.InternalDataSource;
import org.apache.doris.persist.EditLog;
import org.apache.doris.task.DirMoveTask;
import org.apache.doris.task.DownloadTask;
@@ -82,6 +84,8 @@ public class BackupHandlerTest {
@Mocked
private Catalog catalog;
@Mocked
+ private InternalDataSource ds;
+ @Mocked
private BrokerMgr brokerMgr;
@Mocked
private EditLog editLog;
@@ -131,10 +135,15 @@ public class BackupHandlerTest {
};
db = CatalogMocker.mockDb();
+ ds = Deencapsulation.newInstance(InternalDataSource.class);
new Expectations() {
{
- catalog.getDbOrDdlException(anyString);
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+
+ ds.getDbOrDdlException(anyString);
minTimes = 0;
result = db;
}
diff --git a/fe/fe-core/src/test/java/org/apache/doris/backup/BackupJobTest.java b/fe/fe-core/src/test/java/org/apache/doris/backup/BackupJobTest.java
index 2d7ab5e26d..368d64a678 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/backup/BackupJobTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/backup/BackupJobTest.java
@@ -30,6 +30,7 @@ import org.apache.doris.common.Config;
import org.apache.doris.common.FeConstants;
import org.apache.doris.common.jmockit.Deencapsulation;
import org.apache.doris.common.util.UnitTestUtil;
+import org.apache.doris.datasource.InternalDataSource;
import org.apache.doris.persist.EditLog;
import org.apache.doris.task.AgentBatchTask;
import org.apache.doris.task.AgentTask;
@@ -84,6 +85,8 @@ public class BackupJobTest {
@Mocked
private Catalog catalog;
+ @Mocked
+ private InternalDataSource ds;
private MockBackupHandler backupHandler;
@@ -146,10 +149,14 @@ public class BackupJobTest {
Deencapsulation.setField(catalog, "backupHandler", backupHandler);
db = UnitTestUtil.createDb(dbId, tblId, partId, idxId, tabletId, backendId, version);
-
+ ds = Deencapsulation.newInstance(InternalDataSource.class);
new Expectations(catalog) {
{
- catalog.getDbNullable(anyLong);
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+
+ ds.getDbNullable(anyLong);
minTimes = 0;
result = db;
diff --git a/fe/fe-core/src/test/java/org/apache/doris/backup/CatalogMocker.java b/fe/fe-core/src/test/java/org/apache/doris/backup/CatalogMocker.java
index 4bf24e1315..94e6f7cbe9 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/backup/CatalogMocker.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/backup/CatalogMocker.java
@@ -50,6 +50,7 @@ import org.apache.doris.common.DdlException;
import org.apache.doris.common.UserException;
import org.apache.doris.common.jmockit.Deencapsulation;
import org.apache.doris.common.util.Util;
+import org.apache.doris.datasource.InternalDataSource;
import org.apache.doris.load.Load;
import org.apache.doris.mysql.privilege.PaloAuth;
import org.apache.doris.mysql.privilege.PrivPredicate;
@@ -395,33 +396,42 @@ public class CatalogMocker {
FakeEditLog fakeEditLog = new FakeEditLog(); // CHECKSTYLE IGNORE THIS LINE
Catalog catalog = Deencapsulation.newInstance(Catalog.class);
+ InternalDataSource ds = Deencapsulation.newInstance(InternalDataSource.class);
Database db = new Database();
PaloAuth paloAuth = fetchAdminAccess();
- new Expectations(catalog) {
+ new Expectations(catalog, ds) {
{
catalog.getAuth();
minTimes = 0;
result = paloAuth;
- catalog.getDbNullable(TEST_DB_NAME);
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+
+ catalog.getCurrentDataSource();
+ minTimes = 0;
+ result = ds;
+
+ ds.getDbNullable(TEST_DB_NAME);
minTimes = 0;
result = db;
- catalog.getDbNullable(WRONG_DB);
+ ds.getDbNullable(WRONG_DB);
minTimes = 0;
result = null;
- catalog.getDbNullable(TEST_DB_ID);
+ ds.getDbNullable(TEST_DB_ID);
minTimes = 0;
result = db;
- catalog.getDbNullable(anyString);
+ ds.getDbNullable(anyString);
minTimes = 0;
result = new Database();
- catalog.getDbNames();
+ ds.getDbNames();
minTimes = 0;
result = Lists.newArrayList(TEST_DB_NAME);
diff --git a/fe/fe-core/src/test/java/org/apache/doris/backup/RestoreJobTest.java b/fe/fe-core/src/test/java/org/apache/doris/backup/RestoreJobTest.java
index 4e483e3817..10d76f4ff1 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/backup/RestoreJobTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/backup/RestoreJobTest.java
@@ -36,6 +36,7 @@ import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.FeConstants;
import org.apache.doris.common.MarkedCountDownLatch;
import org.apache.doris.common.jmockit.Deencapsulation;
+import org.apache.doris.datasource.InternalDataSource;
import org.apache.doris.persist.EditLog;
import org.apache.doris.system.SystemInfoService;
import org.apache.doris.thrift.TStorageMedium;
@@ -71,6 +72,8 @@ public class RestoreJobTest {
@Mocked
private Catalog catalog;
+ @Mocked
+ private InternalDataSource ds;
private MockBackupHandler backupHandler;
@@ -121,7 +124,11 @@ public class RestoreJobTest {
new Expectations() {
{
- catalog.getDbNullable(anyLong);
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+
+ ds.getDbNullable(anyLong);
minTimes = 0;
result = db;
diff --git a/fe/fe-core/src/test/java/org/apache/doris/catalog/AdminStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/catalog/AdminStmtTest.java
index d3b4bbdc39..ecafe005c7 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/catalog/AdminStmtTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/catalog/AdminStmtTest.java
@@ -54,7 +54,7 @@ public class AdminStmtTest extends TestWithFeService {
@Test
public void testAdminSetReplicaStatus() throws Exception {
- Database db = Catalog.getCurrentCatalog().getDbNullable("default_cluster:test");
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable("default_cluster:test");
Assert.assertNotNull(db);
OlapTable tbl = (OlapTable) db.getTableNullable("tbl1");
Assert.assertNotNull(tbl);
diff --git a/fe/fe-core/src/test/java/org/apache/doris/catalog/CatalogOperationTest.java b/fe/fe-core/src/test/java/org/apache/doris/catalog/CatalogOperationTest.java
index 6d33953d9d..5b28f065f2 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/catalog/CatalogOperationTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/catalog/CatalogOperationTest.java
@@ -110,7 +110,7 @@ public class CatalogOperationTest {
String renameTblStmt = "alter table test.renameTest rename newNewTest";
AlterTableStmt alterTableStmt = (AlterTableStmt) UtFrameUtils.parseAndAnalyzeStmt(renameTblStmt, connectContext);
- Database db = Catalog.getCurrentCatalog().getDbNullable("default_cluster:test");
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable("default_cluster:test");
Assert.assertNotNull(db);
Assert.assertNotNull(db.getTableNullable("renameTest"));
diff --git a/fe/fe-core/src/test/java/org/apache/doris/catalog/CatalogTestUtil.java b/fe/fe-core/src/test/java/org/apache/doris/catalog/CatalogTestUtil.java
index ab6880332a..7d81d30df4 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/catalog/CatalogTestUtil.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/catalog/CatalogTestUtil.java
@@ -120,8 +120,8 @@ public class CatalogTestUtil {
public static boolean compareCatalog(Catalog masterCatalog, Catalog slaveCatalog) {
try {
- Database masterDb = masterCatalog.getDbOrMetaException(testDb1);
- Database slaveDb = slaveCatalog.getDbOrMetaException(testDb1);
+ Database masterDb = masterCatalog.getInternalDataSource().getDbOrMetaException(testDb1);
+ Database slaveDb = slaveCatalog.getInternalDataSource().getDbOrMetaException(testDb1);
List<Table> tables = masterDb.getTables();
for (Table table : tables) {
Table slaveTable = slaveDb.getTableOrMetaException(table.getId());
diff --git a/fe/fe-core/src/test/java/org/apache/doris/catalog/ColocateTableTest.java b/fe/fe-core/src/test/java/org/apache/doris/catalog/ColocateTableTest.java
index 5338e8aa40..a6b65ac1c7 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/catalog/ColocateTableTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/catalog/ColocateTableTest.java
@@ -110,7 +110,7 @@ public class ColocateTableTest {
+ ");");
ColocateTableIndex index = Catalog.getCurrentColocateIndex();
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException(fullDbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(fullDbName);
long tableId = db.getTableOrMetaException(tableName1).getId();
Assert.assertEquals(1, Deencapsulation.<Multimap<GroupId, Long>>getField(index, "group2Tables").size());
@@ -165,7 +165,7 @@ public class ColocateTableTest {
+ ");");
ColocateTableIndex index = Catalog.getCurrentColocateIndex();
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException(fullDbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(fullDbName);
long firstTblId = db.getTableOrMetaException(tableName1).getId();
long secondTblId = db.getTableOrMetaException(tableName2).getId();
@@ -340,7 +340,7 @@ public class ColocateTableTest {
+ ");");
ColocateTableIndex index = Catalog.getCurrentColocateIndex();
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException(fullDbName);
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException(fullDbName);
long tableId = db.getTableOrMetaException(tableName1).getId();
GroupId groupId1 = index.getGroup(tableId);
diff --git a/fe/fe-core/src/test/java/org/apache/doris/catalog/CreateEncryptKeyTest.java b/fe/fe-core/src/test/java/org/apache/doris/catalog/CreateEncryptKeyTest.java
index ed4c055e42..76ca40c4aa 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/catalog/CreateEncryptKeyTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/catalog/CreateEncryptKeyTest.java
@@ -63,9 +63,9 @@ public class CreateEncryptKeyTest {
String createDbStmtStr = "create database db1;";
CreateDbStmt createDbStmt = (CreateDbStmt) UtFrameUtils.parseAndAnalyzeStmt(createDbStmtStr, ctx);
Catalog.getCurrentCatalog().createDb(createDbStmt);
- System.out.println(Catalog.getCurrentCatalog().getDbNames());
+ System.out.println(Catalog.getCurrentInternalCatalog().getDbNames());
- Database db = Catalog.getCurrentCatalog().getDbNullable("default_cluster:db1");
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable("default_cluster:db1");
Assert.assertNotNull(db);
String createFuncStr = "create encryptkey db1.my_key as \"beijing\";";
diff --git a/fe/fe-core/src/test/java/org/apache/doris/catalog/CreateFunctionTest.java b/fe/fe-core/src/test/java/org/apache/doris/catalog/CreateFunctionTest.java
index 05f25c937b..d449ab28b1 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/catalog/CreateFunctionTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/catalog/CreateFunctionTest.java
@@ -76,7 +76,7 @@ public class CreateFunctionTest {
String createDbStmtStr = "create database db1;";
CreateDbStmt createDbStmt = (CreateDbStmt) UtFrameUtils.parseAndAnalyzeStmt(createDbStmtStr, ctx);
Catalog.getCurrentCatalog().createDb(createDbStmt);
- System.out.println(Catalog.getCurrentCatalog().getDbNames());
+ System.out.println(Catalog.getCurrentInternalCatalog().getDbNames());
String createTblStmtStr = "create table db1.tbl1(k1 int, k2 bigint, k3 varchar(10), k4 char(5)) duplicate key(k1) "
+ "distributed by hash(k2) buckets 1 properties('replication_num' = '1');";
@@ -86,7 +86,7 @@ public class CreateFunctionTest {
dorisAssert = new DorisAssert();
dorisAssert.useDatabase("db1");
- Database db = Catalog.getCurrentCatalog().getDbNullable("default_cluster:db1");
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable("default_cluster:db1");
Assert.assertNotNull(db);
String createFuncStr = "create function db1.my_add(VARCHAR(1024)) RETURNS BOOLEAN properties\n"
diff --git a/fe/fe-core/src/test/java/org/apache/doris/catalog/CreateTableLikeTest.java b/fe/fe-core/src/test/java/org/apache/doris/catalog/CreateTableLikeTest.java
index 8eb1359fef..fa72df0f37 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/catalog/CreateTableLikeTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/catalog/CreateTableLikeTest.java
@@ -112,8 +112,10 @@ public class CreateTableLikeTest {
String existedDbName, String newTblName, String existedTblName, int rollupSize) throws Exception {
createTable(createTableSql);
createTableLike(createTableLikeSql);
- Database newDb = Catalog.getCurrentCatalog().getDbOrDdlException("default_cluster:" + newDbName);
- Database existedDb = Catalog.getCurrentCatalog().getDbOrDdlException("default_cluster:" + existedDbName);
+ Database newDb =
+ Catalog.getCurrentInternalCatalog().getDbOrDdlException("default_cluster:" + newDbName);
+ Database existedDb = Catalog.getCurrentInternalCatalog()
+ .getDbOrDdlException("default_cluster:" + existedDbName);
OlapTable newTbl = (OlapTable) newDb.getTableOrDdlException(newTblName);
OlapTable existedTbl = (OlapTable) existedDb.getTableOrDdlException(existedTblName);
checkTableEqual(newTbl, existedTbl, rollupSize);
@@ -124,8 +126,10 @@ public class CreateTableLikeTest {
createTable(createTableSql);
createTableLike(createTableLikeSql);
- Database newDb = Catalog.getCurrentCatalog().getDbOrDdlException("default_cluster:" + newDbName);
- Database existedDb = Catalog.getCurrentCatalog().getDbOrDdlException("default_cluster:" + existedDbName);
+ Database newDb =
+ Catalog.getCurrentInternalCatalog().getDbOrDdlException("default_cluster:" + newDbName);
+ Database existedDb = Catalog.getCurrentInternalCatalog()
+ .getDbOrDdlException("default_cluster:" + existedDbName);
MysqlTable newTbl = (MysqlTable) newDb.getTableOrDdlException(newTblName);
MysqlTable existedTbl = (MysqlTable) existedDb.getTableOrDdlException(existedTblName);
checkTableEqual(newTbl, existedTbl, 0);
@@ -141,7 +145,7 @@ public class CreateTableLikeTest {
+ " partition p2 VALUES [(\"20211201\"),(\"20220101\"))\n" + ")\n"
+ "DISTRIBUTED BY HASH(`id1`) BUCKETS 1\n" + "PROPERTIES (\n" + "\"replication_num\" = \"1\"\n" + ");";
createTable(createTableSql);
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException("default_cluster:test");
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException("default_cluster:test");
OlapTable table = (OlapTable) db.getTableOrDdlException("bucket_distribution_test");
DistributionInfo defaultInfo = table.getDefaultDistributionInfo();
DistributionInfo previous = null;
diff --git a/fe/fe-core/src/test/java/org/apache/doris/catalog/CreateTableTest.java b/fe/fe-core/src/test/java/org/apache/doris/catalog/CreateTableTest.java
index 17ddd906c0..f481c679c3 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/catalog/CreateTableTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/catalog/CreateTableTest.java
@@ -208,7 +208,7 @@ public class CreateTableTest {
+ "distributed by hash(k2) buckets 1\n"
+ "properties('replication_num' = '1');"));
- Database db = Catalog.getCurrentCatalog().getDbOrDdlException("default_cluster:test");
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrDdlException("default_cluster:test");
OlapTable tbl6 = (OlapTable) db.getTableOrDdlException("tbl6");
Assert.assertTrue(tbl6.getColumn("k1").isKey());
Assert.assertTrue(tbl6.getColumn("k2").isKey());
diff --git a/fe/fe-core/src/test/java/org/apache/doris/catalog/CreateViewTest.java b/fe/fe-core/src/test/java/org/apache/doris/catalog/CreateViewTest.java
index 3a895b0627..6b71365c09 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/catalog/CreateViewTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/catalog/CreateViewTest.java
@@ -87,7 +87,7 @@ public class CreateViewTest {
() -> createView("create view test.view5 as select * from test.tbl1 where hour(now()) > 3"
+ " and curdate() > '2021-06-26';"));
- Database db = Catalog.getCurrentCatalog().getDbOrDdlException("default_cluster:test");
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrDdlException("default_cluster:test");
View view1 = (View) db.getTableOrDdlException("view1");
Assert.assertEquals(4, view1.getFullSchema().size());
@@ -136,7 +136,7 @@ public class CreateViewTest {
String originStmt = "select k1 as kc1, sum(k2) as kc2 from test.tbl1 group by kc1";
ExceptionChecker.expectThrowsNoException(
() -> createView("create view test.alter1 as " + originStmt));
- Database db = Catalog.getCurrentCatalog().getDbOrDdlException("default_cluster:test");
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrDdlException("default_cluster:test");
View alter1 = (View) db.getTableOrDdlException("alter1");
Assert.assertEquals("SELECT `k1` AS `kc1`, sum(`k2`) AS `kc2` FROM `default_cluster:test`.`tbl1` GROUP BY `kc1`", alter1.getInlineViewDef());
diff --git a/fe/fe-core/src/test/java/org/apache/doris/catalog/DropDbTest.java b/fe/fe-core/src/test/java/org/apache/doris/catalog/DropDbTest.java
index ca2f1cb953..c742719e60 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/catalog/DropDbTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/catalog/DropDbTest.java
@@ -84,20 +84,20 @@ public class DropDbTest {
@Test
public void testNormalDropDb() throws Exception {
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException("default_cluster:test1");
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException("default_cluster:test1");
OlapTable table = (OlapTable) db.getTableOrMetaException("tbl1");
Partition partition = table.getAllPartitions().iterator().next();
long tabletId = partition.getBaseIndex().getTablets().get(0).getId();
String dropDbSql = "drop database test1";
dropDb(dropDbSql);
- db = Catalog.getCurrentCatalog().getDbNullable("default_cluster:test1");
+ db = Catalog.getCurrentInternalCatalog().getDbNullable("default_cluster:test1");
Assert.assertNull(db);
List<Replica> replicaList = Catalog.getCurrentCatalog().getTabletInvertedIndex().getReplicasByTabletId(tabletId);
Assert.assertEquals(1, replicaList.size());
String recoverDbSql = "recover database test1";
RecoverDbStmt recoverDbStmt = (RecoverDbStmt) UtFrameUtils.parseAndAnalyzeStmt(recoverDbSql, connectContext);
Catalog.getCurrentCatalog().recoverDatabase(recoverDbStmt);
- db = Catalog.getCurrentCatalog().getDbNullable("default_cluster:test1");
+ db = Catalog.getCurrentInternalCatalog().getDbNullable("default_cluster:test1");
Assert.assertNotNull(db);
Assert.assertEquals("default_cluster:test1", db.getFullName());
table = (OlapTable) db.getTableOrMetaException("tbl1");
@@ -106,27 +106,27 @@ public class DropDbTest {
dropDbSql = "drop schema test1";
dropDb(dropDbSql);
- db = Catalog.getCurrentCatalog().getDbNullable("default_cluster:test1");
+ db = Catalog.getCurrentInternalCatalog().getDbNullable("default_cluster:test1");
Assert.assertNull(db);
Catalog.getCurrentCatalog().recoverDatabase(recoverDbStmt);
- db = Catalog.getCurrentCatalog().getDbNullable("default_cluster:test1");
+ db = Catalog.getCurrentInternalCatalog().getDbNullable("default_cluster:test1");
Assert.assertNotNull(db);
dropDbSql = "drop schema if exists test1";
dropDb(dropDbSql);
- db = Catalog.getCurrentCatalog().getDbNullable("default_cluster:test1");
+ db = Catalog.getCurrentInternalCatalog().getDbNullable("default_cluster:test1");
Assert.assertNull(db);
}
@Test
public void testForceDropDb() throws Exception {
String dropDbSql = "drop database test2 force";
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException("default_cluster:test2");
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException("default_cluster:test2");
OlapTable table = (OlapTable) db.getTableOrMetaException("tbl1");
Partition partition = table.getAllPartitions().iterator().next();
long tabletId = partition.getBaseIndex().getTablets().get(0).getId();
dropDb(dropDbSql);
- db = Catalog.getCurrentCatalog().getDbNullable("default_cluster:test2");
+ db = Catalog.getCurrentInternalCatalog().getDbNullable("default_cluster:test2");
List<Replica> replicaList = Catalog.getCurrentCatalog().getTabletInvertedIndex().getReplicasByTabletId(tabletId);
Assert.assertNull(db);
Assert.assertTrue(replicaList.isEmpty());
@@ -137,10 +137,10 @@ public class DropDbTest {
() -> Catalog.getCurrentCatalog().recoverDatabase(recoverDbStmt));
dropDbSql = "drop schema test3 force";
- db = Catalog.getCurrentCatalog().getDbOrMetaException("default_cluster:test3");
+ db = Catalog.getCurrentInternalCatalog().getDbOrMetaException("default_cluster:test3");
Assert.assertNotNull(db);
dropDb(dropDbSql);
- db = Catalog.getCurrentCatalog().getDbNullable("default_cluster:test3");
+ db = Catalog.getCurrentInternalCatalog().getDbNullable("default_cluster:test3");
Assert.assertNull(db);
recoverDbSql = "recover database test3";
RecoverDbStmt recoverDbStmt2 = (RecoverDbStmt) UtFrameUtils.parseAndAnalyzeStmt(recoverDbSql, connectContext);
diff --git a/fe/fe-core/src/test/java/org/apache/doris/catalog/DropPartitionTest.java b/fe/fe-core/src/test/java/org/apache/doris/catalog/DropPartitionTest.java
index 144ee765cc..7bd4f54cc3 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/catalog/DropPartitionTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/catalog/DropPartitionTest.java
@@ -80,7 +80,7 @@ public class DropPartitionTest {
@Test
public void testNormalDropPartition() throws Exception {
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException("default_cluster:test");
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException("default_cluster:test");
OlapTable table = (OlapTable) db.getTableOrMetaException("tbl1", Table.TableType.OLAP);
Partition partition = table.getPartition("p20210201");
long tabletId = partition.getBaseIndex().getTablets().get(0).getId();
@@ -100,7 +100,7 @@ public class DropPartitionTest {
@Test
public void testForceDropPartition() throws Exception {
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException("default_cluster:test");
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException("default_cluster:test");
OlapTable table = (OlapTable) db.getTableOrMetaException("tbl1", Table.TableType.OLAP);
Partition partition = table.getPartition("p20210202");
long tabletId = partition.getBaseIndex().getTablets().get(0).getId();
@@ -119,7 +119,7 @@ public class DropPartitionTest {
@Test
public void testDropPartitionAndReserveTablets() throws Exception {
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException("default_cluster:test");
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException("default_cluster:test");
OlapTable table = (OlapTable) db.getTableOrMetaException("tbl1", Table.TableType.OLAP);
Partition partition = table.getPartition("p20210203");
long tabletId = partition.getBaseIndex().getTablets().get(0).getId();
diff --git a/fe/fe-core/src/test/java/org/apache/doris/catalog/DropTableTest.java b/fe/fe-core/src/test/java/org/apache/doris/catalog/DropTableTest.java
index f96c60cc37..12975074a7 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/catalog/DropTableTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/catalog/DropTableTest.java
@@ -80,7 +80,7 @@ public class DropTableTest {
@Test
public void testNormalDropTable() throws Exception {
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException("default_cluster:test");
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException("default_cluster:test");
OlapTable table = (OlapTable) db.getTableOrMetaException("tbl1");
Partition partition = table.getAllPartitions().iterator().next();
long tabletId = partition.getBaseIndex().getTablets().get(0).getId();
@@ -98,7 +98,7 @@ public class DropTableTest {
@Test
public void testForceDropTable() throws Exception {
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException("default_cluster:test");
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException("default_cluster:test");
OlapTable table = (OlapTable) db.getTableOrMetaException("tbl2");
Partition partition = table.getAllPartitions().iterator().next();
long tabletId = partition.getBaseIndex().getTablets().get(0).getId();
diff --git a/fe/fe-core/src/test/java/org/apache/doris/catalog/DynamicPartitionTableTest.java b/fe/fe-core/src/test/java/org/apache/doris/catalog/DynamicPartitionTableTest.java
index c2a6098b11..9f12eb7f10 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/catalog/DynamicPartitionTableTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/catalog/DynamicPartitionTableTest.java
@@ -94,29 +94,18 @@ public class DynamicPartitionTableTest {
+ " `k1` date NULL COMMENT \"\",\n"
+ " `k2` int NULL COMMENT \"\",\n"
+ " `k3` smallint NULL COMMENT \"\",\n"
- + " `v1` varchar(2048) NULL COMMENT \"\",\n"
- + " `v2` datetime NULL COMMENT \"\"\n"
- + ") ENGINE=OLAP\n"
- + "DUPLICATE KEY(`k1`, `k2`, `k3`)\n"
- + "COMMENT \"OLAP\"\n"
- + "PARTITION BY RANGE (k1)\n"
- + "(\n"
- + "PARTITION p1 VALUES LESS THAN (\"2014-01-01\"),\n"
+ + " `v1` varchar(2048) NULL COMMENT \"\",\n" + " `v2` datetime NULL COMMENT \"\"\n"
+ + ") ENGINE=OLAP\n" + "DUPLICATE KEY(`k1`, `k2`, `k3`)\n" + "COMMENT \"OLAP\"\n"
+ + "PARTITION BY RANGE (k1)\n" + "(\n" + "PARTITION p1 VALUES LESS THAN (\"2014-01-01\"),\n"
+ "PARTITION p2 VALUES LESS THAN (\"2014-06-01\"),\n"
- + "PARTITION p3 VALUES LESS THAN (\"2014-12-01\")\n"
- + ")\n"
- + "DISTRIBUTED BY HASH(`k1`) BUCKETS 32\n"
- + "PROPERTIES (\n"
- + "\"replication_num\" = \"1\",\n"
- + "\"dynamic_partition.enable\" = \"true\",\n"
- + "\"dynamic_partition.start\" = \"-3\",\n"
- + "\"dynamic_partition.end\" = \"3\",\n"
- + "\"dynamic_partition.time_unit\" = \"day\",\n"
- + "\"dynamic_partition.prefix\" = \"p\",\n"
- + "\"dynamic_partition.buckets\" = \"1\"\n"
- + ");";
+ + "PARTITION p3 VALUES LESS THAN (\"2014-12-01\")\n" + ")\n" + "DISTRIBUTED BY HASH(`k1`) BUCKETS 32\n"
+ + "PROPERTIES (\n" + "\"replication_num\" = \"1\",\n" + "\"dynamic_partition.enable\" = \"true\",\n"
+ + "\"dynamic_partition.start\" = \"-3\",\n" + "\"dynamic_partition.end\" = \"3\",\n"
+ + "\"dynamic_partition.time_unit\" = \"day\",\n" + "\"dynamic_partition.prefix\" = \"p\",\n"
+ + "\"dynamic_partition.buckets\" = \"1\"\n" + ");";
createTable(createOlapTblStmt);
- Database db = Catalog.getCurrentCatalog().getDbOrAnalysisException("default_cluster:test");
+ Database db =
+ Catalog.getCurrentInternalCatalog().getDbOrAnalysisException("default_cluster:test");
OlapTable table = (OlapTable) db.getTableOrAnalysisException("dynamic_partition_normal");
Assert.assertTrue(table.getTableProperty().getDynamicPartitionProperty().getReplicaAllocation().isNotSet());
}
@@ -434,39 +423,33 @@ public class DynamicPartitionTableTest {
+ " `k2` int NULL COMMENT \"\",\n"
+ " `k3` smallint NULL COMMENT \"\",\n"
+ " `v1` varchar(2048) NULL COMMENT \"\",\n"
- + " `v2` datetime NULL COMMENT \"\"\n"
- + ") ENGINE=OLAP\n"
- + "DUPLICATE KEY(`k1`, `k2`, `k3`)\n"
- + "COMMENT \"OLAP\"\n"
- + "PARTITION BY RANGE (k1)\n"
- + "(\n"
+ + " `v2` datetime NULL COMMENT \"\"\n" + ") ENGINE=OLAP\n" + "DUPLICATE KEY(`k1`, `k2`, `k3`)\n"
+ + "COMMENT \"OLAP\"\n" + "PARTITION BY RANGE (k1)\n" + "(\n"
+ "PARTITION p1 VALUES LESS THAN (\"2014-01-01\"),\n"
+ "PARTITION p2 VALUES LESS THAN (\"2014-06-01\"),\n"
- + "PARTITION p3 VALUES LESS THAN (\"2014-12-01\")\n"
- + ")\n"
- + "DISTRIBUTED BY HASH(`k1`) BUCKETS 32\n"
- + "PROPERTIES (\n"
- + "\"replication_num\" = \"1\",\n"
- + "\"dynamic_partition.enable\" = \"true\",\n"
- + "\"dynamic_partition.start\" = \"-3\",\n"
- + "\"dynamic_partition.end\" = \"3\",\n"
- + "\"dynamic_partition.time_unit\" = \"day\",\n"
- + "\"dynamic_partition.prefix\" = \"p\",\n"
- + "\"dynamic_partition.buckets\" = \"1\",\n"
- + "\"dynamic_partition.replication_num\" = \"2\"\n"
- + ");";
+ + "PARTITION p3 VALUES LESS THAN (\"2014-12-01\")\n" + ")\n" + "DISTRIBUTED BY HASH(`k1`) BUCKETS 32\n"
+ + "PROPERTIES (\n" + "\"replication_num\" = \"1\",\n" + "\"dynamic_partition.enable\" = \"true\",\n"
+ + "\"dynamic_partition.start\" = \"-3\",\n" + "\"dynamic_partition.end\" = \"3\",\n"
+ + "\"dynamic_partition.time_unit\" = \"day\",\n" + "\"dynamic_partition.prefix\" = \"p\",\n"
+ + "\"dynamic_partition.buckets\" = \"1\",\n" + "\"dynamic_partition.replication_num\" = \"2\"\n" + ");";
createTable(createOlapTblStmt);
- Database db = Catalog.getCurrentCatalog().getDbOrAnalysisException("default_cluster:test");
+ Database db =
+ Catalog.getCurrentInternalCatalog().getDbOrAnalysisException("default_cluster:test");
OlapTable table = (OlapTable) db.getTableOrAnalysisException(tableName);
- Assert.assertEquals(2, table.getTableProperty().getDynamicPartitionProperty().getReplicaAllocation().getTotalReplicaNum());
+ Assert.assertEquals(2,
+ table.getTableProperty().getDynamicPartitionProperty().getReplicaAllocation().getTotalReplicaNum());
- String alter1 = "alter table test.dynamic_partition_replication_num set ('dynamic_partition.replication_num' = '1')";
+ String alter1 =
+ "alter table test.dynamic_partition_replication_num set ('dynamic_partition.replication_num' = '1')";
ExceptionChecker.expectThrowsNoException(() -> alterTable(alter1));
- Assert.assertEquals(1, table.getTableProperty().getDynamicPartitionProperty().getReplicaAllocation().getTotalReplicaNum());
+ Assert.assertEquals(1,
+ table.getTableProperty().getDynamicPartitionProperty().getReplicaAllocation().getTotalReplicaNum());
- String alter2 = "alter table test.dynamic_partition_replication_num set ('dynamic_partition.replication_num' = '0')";
+ String alter2 =
+ "alter table test.dynamic_partition_replication_num set ('dynamic_partition.replication_num' = '0')";
ExceptionChecker.expectThrows(AnalysisException.class, () -> alterTable(alter2));
- Assert.assertEquals(1, table.getTableProperty().getDynamicPartitionProperty().getReplicaAllocation().getTotalReplicaNum());
+ Assert.assertEquals(1,
+ table.getTableProperty().getDynamicPartitionProperty().getReplicaAllocation().getTotalReplicaNum());
}
@Test
@@ -493,7 +476,9 @@ public class DynamicPartitionTableTest {
+ "\"dynamic_partition.buckets\" = \"1\"\n"
+ ");";
createTable(createOlapTblStmt);
- OlapTable emptyDynamicTable = (OlapTable) Catalog.getCurrentCatalog().getDbOrAnalysisException("default_cluster:test").getTableOrAnalysisException("empty_dynamic_partition");
+ OlapTable emptyDynamicTable = (OlapTable) Catalog.getCurrentInternalCatalog()
+ .getDbOrAnalysisException("default_cluster:test")
+ .getTableOrAnalysisException("empty_dynamic_partition");
Assert.assertTrue(emptyDynamicTable.getAllPartitions().size() == 4);
Iterator<Partition> partitionIterator = emptyDynamicTable.getAllPartitions().iterator();
@@ -547,7 +532,9 @@ public class DynamicPartitionTableTest {
+ "\"dynamic_partition.buckets\" = \"1\"\n"
+ ");";
createTable(createOlapTblStmt);
- OlapTable emptyDynamicTable = (OlapTable) Catalog.getCurrentCatalog().getDbOrAnalysisException("default_cluster:test").getTableOrAnalysisException("histo_dynamic_partition");
+ OlapTable emptyDynamicTable = (OlapTable) Catalog.getCurrentInternalCatalog()
+ .getDbOrAnalysisException("default_cluster:test")
+ .getTableOrAnalysisException("histo_dynamic_partition");
Assert.assertEquals(7, emptyDynamicTable.getAllPartitions().size());
Iterator<Partition> partitionIterator = emptyDynamicTable.getAllPartitions().iterator();
@@ -665,37 +652,33 @@ public class DynamicPartitionTableTest {
// start is set but too small,history_partition_num is not set, can not create history partition
ExceptionChecker.expectThrowsWithMsg(DdlException.class, "Too many dynamic partitions", () -> createTable(createOlapTblStmt3));
- String createOlapTblStmt4 = "CREATE TABLE test.`dynamic_partition3` (\n"
- + " `k1` date NULL COMMENT \"\"\n"
- + ")\n"
- + "PARTITION BY RANGE (k1)\n"
- + "()\n"
- + "DISTRIBUTED BY HASH(`k1`) BUCKETS 1\n"
- + "PROPERTIES (\n"
- + "\"replication_num\" = \"1\",\n"
- + "\"dynamic_partition.enable\" = \"true\",\n"
- + "\"dynamic_partition.end\" = \"3\",\n"
- + "\"dynamic_partition.time_unit\" = \"day\",\n"
- + "\"dynamic_partition.prefix\" = \"p\",\n"
- + "\"dynamic_partition.buckets\" = \"1\",\n"
- + "\"dynamic_partition.start\" = \"-10\",\n"
- + "\"dynamic_partition.history_partition_num\" = \"5\",\n"
- + "\"dynamic_partition.create_history_partition\" = \"true\"\n"
- + ");";
+ String createOlapTblStmt4 =
+ "CREATE TABLE test.`dynamic_partition3` (\n" + " `k1` date NULL COMMENT \"\"\n" + ")\n"
+ + "PARTITION BY RANGE (k1)\n" + "()\n" + "DISTRIBUTED BY HASH(`k1`) BUCKETS 1\n"
+ + "PROPERTIES (\n" + "\"replication_num\" = \"1\",\n"
+ + "\"dynamic_partition.enable\" = \"true\",\n" + "\"dynamic_partition.end\" = \"3\",\n"
+ + "\"dynamic_partition.time_unit\" = \"day\",\n" + "\"dynamic_partition.prefix\" = \"p\",\n"
+ + "\"dynamic_partition.buckets\" = \"1\",\n" + "\"dynamic_partition.start\" = \"-10\",\n"
+ + "\"dynamic_partition.history_partition_num\" = \"5\",\n"
+ + "\"dynamic_partition.create_history_partition\" = \"true\"\n" + ");";
// start and history_partition_num are set, create ok
ExceptionChecker.expectThrowsNoException(() -> createTable(createOlapTblStmt4));
- Database db = Catalog.getCurrentCatalog().getDbOrAnalysisException("default_cluster:test");
+ Database db =
+ Catalog.getCurrentInternalCatalog().getDbOrAnalysisException("default_cluster:test");
OlapTable tbl = (OlapTable) db.getTableOrAnalysisException("dynamic_partition3");
Assert.assertEquals(9, tbl.getPartitionNames().size());
// alter dynamic partition property of table dynamic_partition3
// start too small
- String alter1 = "alter table test.dynamic_partition3 set ('dynamic_partition.start' = '-1000', 'dynamic_partition.history_partition_num' = '1000')";
- ExceptionChecker.expectThrowsWithMsg(DdlException.class, "Too many dynamic partitions", () -> alterTable(alter1));
+ String alter1 =
+ "alter table test.dynamic_partition3 set ('dynamic_partition.start' = '-1000', 'dynamic_partition.history_partition_num' = '1000')";
+ ExceptionChecker.expectThrowsWithMsg(DdlException.class, "Too many dynamic partitions",
+ () -> alterTable(alter1));
// end too large
String alter2 = "alter table test.dynamic_partition3 set ('dynamic_partition.end' = '1000')";
- ExceptionChecker.expectThrowsWithMsg(DdlException.class, "Too many dynamic partitions", () -> alterTable(alter2));
+ ExceptionChecker.expectThrowsWithMsg(DdlException.class, "Too many dynamic partitions",
+ () -> alterTable(alter2));
// history_partition_num too large, but because start is -10, so modify ok
String alter3 = "alter table test.dynamic_partition3 set ('dynamic_partition.history_partition_num' = '1000')";
@@ -728,7 +711,9 @@ public class DynamicPartitionTableTest {
+ "\"dynamic_partition.buckets\" = \"1\"\n"
+ ");";
createTable(createOlapTblStmt);
- OlapTable emptyDynamicTable = (OlapTable) Catalog.getCurrentCatalog().getDbOrAnalysisException("default_cluster:test").getTableOrAnalysisException("history_dynamic_partition_day");
+ OlapTable emptyDynamicTable = (OlapTable) Catalog.getCurrentInternalCatalog()
+ .getDbOrAnalysisException("default_cluster:test")
+ .getTableOrAnalysisException("history_dynamic_partition_day");
Map<String, String> tableProperties = emptyDynamicTable.getTableProperty().getProperties();
Assert.assertEquals(14, emptyDynamicTable.getAllPartitions().size());
// never delete the old partitions
@@ -755,7 +740,8 @@ public class DynamicPartitionTableTest {
+ "\"dynamic_partition.buckets\" = \"1\"\n"
+ ");";
createTable(createOlapTblStmt);
- OlapTable emptyDynamicTable = (OlapTable) Catalog.getCurrentCatalog().getDbOrAnalysisException("default_cluster:test").getTableOrAnalysisException("hour_dynamic_partition");
+ OlapTable emptyDynamicTable = (OlapTable) Catalog.getCurrentInternalCatalog()
+ .getDbOrAnalysisException("default_cluster:test").getTableOrAnalysisException("hour_dynamic_partition");
Assert.assertEquals(7, emptyDynamicTable.getAllPartitions().size());
Iterator<Partition> partitionIterator = emptyDynamicTable.getAllPartitions().iterator();
@@ -782,7 +768,8 @@ public class DynamicPartitionTableTest {
+ "\"dynamic_partition.buckets\" = \"1\"\n"
+ ");";
createTable(createOlapTblStmt);
- emptyDynamicTable = (OlapTable) Catalog.getCurrentCatalog().getDbOrAnalysisException("default_cluster:test").getTableOrAnalysisException("week_dynamic_partition");
+ emptyDynamicTable = (OlapTable) Catalog.getCurrentInternalCatalog()
+ .getDbOrAnalysisException("default_cluster:test").getTableOrAnalysisException("week_dynamic_partition");
Assert.assertEquals(7, emptyDynamicTable.getAllPartitions().size());
partitionIterator = emptyDynamicTable.getAllPartitions().iterator();
@@ -809,7 +796,9 @@ public class DynamicPartitionTableTest {
+ "\"dynamic_partition.buckets\" = \"1\"\n"
+ ");";
createTable(createOlapTblStmt);
- emptyDynamicTable = (OlapTable) Catalog.getCurrentCatalog().getDbOrAnalysisException("default_cluster:test").getTableOrAnalysisException("month_dynamic_partition");
+ emptyDynamicTable = (OlapTable) Catalog.getCurrentInternalCatalog()
+ .getDbOrAnalysisException("default_cluster:test")
+ .getTableOrAnalysisException("month_dynamic_partition");
Assert.assertEquals(7, emptyDynamicTable.getAllPartitions().size());
partitionIterator = emptyDynamicTable.getAllPartitions().iterator();
@@ -836,7 +825,9 @@ public class DynamicPartitionTableTest {
+ "\"dynamic_partition.buckets\" = \"1\"\n"
+ ");";
createTable(createOlapTblStmt);
- emptyDynamicTable = (OlapTable) Catalog.getCurrentCatalog().getDbOrAnalysisException("default_cluster:test").getTableOrAnalysisException("int_dynamic_partition_day");
+ emptyDynamicTable = (OlapTable) Catalog.getCurrentInternalCatalog()
+ .getDbOrAnalysisException("default_cluster:test")
+ .getTableOrAnalysisException("int_dynamic_partition_day");
Assert.assertEquals(7, emptyDynamicTable.getAllPartitions().size());
partitionIterator = emptyDynamicTable.getAllPartitions().iterator();
@@ -863,7 +854,9 @@ public class DynamicPartitionTableTest {
+ "\"dynamic_partition.buckets\" = \"1\"\n"
+ ");";
createTable(createOlapTblStmt);
- emptyDynamicTable = (OlapTable) Catalog.getCurrentCatalog().getDbOrAnalysisException("default_cluster:test").getTableOrAnalysisException("int_dynamic_partition_week");
+ emptyDynamicTable = (OlapTable) Catalog.getCurrentInternalCatalog()
+ .getDbOrAnalysisException("default_cluster:test")
+ .getTableOrAnalysisException("int_dynamic_partition_week");
Assert.assertEquals(7, emptyDynamicTable.getAllPartitions().size());
partitionIterator = emptyDynamicTable.getAllPartitions().iterator();
@@ -890,7 +883,9 @@ public class DynamicPartitionTableTest {
+ "\"dynamic_partition.buckets\" = \"1\"\n"
+ ");";
createTable(createOlapTblStmt);
- emptyDynamicTable = (OlapTable) Catalog.getCurrentCatalog().getDbOrAnalysisException("default_cluster:test").getTableOrAnalysisException("int_dynamic_partition_month");
+ emptyDynamicTable = (OlapTable) Catalog.getCurrentInternalCatalog()
+ .getDbOrAnalysisException("default_cluster:test")
+ .getTableOrAnalysisException("int_dynamic_partition_month");
Assert.assertEquals(7, emptyDynamicTable.getAllPartitions().size());
partitionIterator = emptyDynamicTable.getAllPartitions().iterator();
@@ -924,7 +919,8 @@ public class DynamicPartitionTableTest {
@Test
public void testHotPartitionNum() throws Exception {
- Database testDb = Catalog.getCurrentCatalog().getDbOrAnalysisException("default_cluster:test");
+ Database testDb =
+ Catalog.getCurrentInternalCatalog().getDbOrAnalysisException("default_cluster:test");
// 1. hour
String createOlapTblStmt = "CREATE TABLE test.`hot_partition_hour_tbl1` (\n"
+ " `k1` datetime NULL COMMENT \"\",\n"
@@ -1215,7 +1211,9 @@ public class DynamicPartitionTableTest {
+ "\"dynamic_partition.prefix\" = \"p\"\n"
+ ");";
createTable(createOlapTblStmt);
- OlapTable table = (OlapTable) Catalog.getCurrentCatalog().getDbOrAnalysisException("default_cluster:test").getTableOrAnalysisException("dynamic_partition_miss_reserved_history_periods");
+ OlapTable table = (OlapTable) Catalog.getCurrentInternalCatalog()
+ .getDbOrAnalysisException("default_cluster:test")
+ .getTableOrAnalysisException("dynamic_partition_miss_reserved_history_periods");
Assert.assertEquals("NULL", table.getTableProperty().getDynamicPartitionProperty().getReservedHistoryPeriods());
}
@@ -1256,7 +1254,9 @@ public class DynamicPartitionTableTest {
+ "\"dynamic_partition.reserved_history_periods\" = \"[2020-06-01,2020-06-20],[2020-10-25,2020-11-15],[2021-06-01,2021-06-20]\"\n"
+ ");";
createTable(createOlapTblStmt);
- OlapTable table = (OlapTable) Catalog.getCurrentCatalog().getDbOrAnalysisException("default_cluster:test").getTableOrAnalysisException("dynamic_partition_normal_reserved_history_periods");
+ OlapTable table = (OlapTable) Catalog.getCurrentInternalCatalog()
+ .getDbOrAnalysisException("default_cluster:test")
+ .getTableOrAnalysisException("dynamic_partition_normal_reserved_history_periods");
Assert.assertEquals("[2020-06-01,2020-06-20],[2020-10-25,2020-11-15],[2021-06-01,2021-06-20]", table.getTableProperty().getDynamicPartitionProperty().getReservedHistoryPeriods());
Assert.assertEquals(table.getAllPartitions().size(), 9);
@@ -1289,7 +1289,9 @@ public class DynamicPartitionTableTest {
+ "\"dynamic_partition.reserved_history_periods\" = \"[2014-01-01 00:00:00,2014-01-01 03:00:00]\"\n"
+ ");";
createTable(createOlapTblStmt2);
- OlapTable table2 = (OlapTable) Catalog.getCurrentCatalog().getDbOrAnalysisException("default_cluster:test").getTableOrAnalysisException("dynamic_partition_normal_reserved_history_periods2");
+ OlapTable table2 = (OlapTable) Catalog.getCurrentInternalCatalog()
+ .getDbOrAnalysisException("default_cluster:test")
+ .getTableOrAnalysisException("dynamic_partition_normal_reserved_history_periods2");
Assert.assertEquals("[2014-01-01 00:00:00,2014-01-01 03:00:00]", table2.getTableProperty().getDynamicPartitionProperty().getReservedHistoryPeriods());
Assert.assertEquals(table2.getAllPartitions().size(), 6);
@@ -1318,7 +1320,9 @@ public class DynamicPartitionTableTest {
+ "\"dynamic_partition.reserved_history_periods\" = \"[2020-06-01,2020-06-30]\"\n"
+ ");";
createTable(createOlapTblStmt3);
- OlapTable table3 = (OlapTable) Catalog.getCurrentCatalog().getDbOrAnalysisException("default_cluster:test").getTableOrAnalysisException("dynamic_partition_normal_reserved_history_periods3");
+ OlapTable table3 = (OlapTable) Catalog.getCurrentInternalCatalog()
+ .getDbOrAnalysisException("default_cluster:test")
+ .getTableOrAnalysisException("dynamic_partition_normal_reserved_history_periods3");
Assert.assertEquals("[2020-06-01,2020-06-30]", table3.getTableProperty().getDynamicPartitionProperty().getReservedHistoryPeriods());
Assert.assertEquals(table3.getAllPartitions().size(), 5);
}
diff --git a/fe/fe-core/src/test/java/org/apache/doris/catalog/MetadataViewerTest.java b/fe/fe-core/src/test/java/org/apache/doris/catalog/MetadataViewerTest.java
index 04eedec79d..dde1b17db3 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/catalog/MetadataViewerTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/catalog/MetadataViewerTest.java
@@ -21,6 +21,7 @@ import org.apache.doris.analysis.BinaryPredicate.Operator;
import org.apache.doris.analysis.PartitionNames;
import org.apache.doris.backup.CatalogMocker;
import org.apache.doris.catalog.Replica.ReplicaStatus;
+import org.apache.doris.datasource.InternalDataSource;
import org.apache.doris.system.SystemInfoService;
import com.google.common.collect.Lists;
@@ -43,6 +44,9 @@ public class MetadataViewerTest {
@Mocked
private Catalog catalog;
+ @Mocked
+ private InternalDataSource internalDataSource;
+
@Mocked
private SystemInfoService infoService;
@@ -50,7 +54,7 @@ public class MetadataViewerTest {
@BeforeClass
public static void setUp() throws Exception {
- Class[] argTypes = new Class[] { String.class, String.class, List.class, ReplicaStatus.class, Operator.class };
+ Class[] argTypes = new Class[] {String.class, String.class, List.class, ReplicaStatus.class, Operator.class};
getTabletStatusMethod = MetadataViewer.class.getDeclaredMethod("getTabletStatus", argTypes);
getTabletStatusMethod.setAccessible(true);
@@ -64,15 +68,23 @@ public class MetadataViewerTest {
@Before
public void before() throws Exception {
+ new Expectations() {
+ {
+ internalDataSource.getDbOrDdlException(anyString);
+ minTimes = 0;
+ result = db;
+ }
+ };
+
new Expectations() {
{
Catalog.getCurrentCatalog();
minTimes = 0;
result = catalog;
- catalog.getDbOrDdlException(anyString);
+ catalog.getInternalDataSource();
minTimes = 0;
- result = db;
+ result = internalDataSource;
}
};
diff --git a/fe/fe-core/src/test/java/org/apache/doris/catalog/ModifyBackendTest.java b/fe/fe-core/src/test/java/org/apache/doris/catalog/ModifyBackendTest.java
index 62f7e487a2..e768357a0b 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/catalog/ModifyBackendTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/catalog/ModifyBackendTest.java
@@ -116,7 +116,7 @@ public class ModifyBackendTest {
// although there is no exception throw, but partition create failed, because there is no BE
// with "default" tag
ExceptionChecker.expectThrowsNoException(() -> DdlExecutor.execute(Catalog.getCurrentCatalog(), createStmt3));
- Database db = Catalog.getCurrentCatalog().getDbNullable("default_cluster:test");
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable("default_cluster:test");
Table tbl3 = db.getTableNullable("tbl3");
String err = Catalog.getCurrentCatalog().getDynamicPartitionScheduler().getRuntimeInfo(tbl3.getId(), DynamicPartitionScheduler.CREATE_PARTITION_MSG);
Assert.assertTrue(err.contains("Failed to find 1 backends for policy:"));
diff --git a/fe/fe-core/src/test/java/org/apache/doris/catalog/RecoverTest.java b/fe/fe-core/src/test/java/org/apache/doris/catalog/RecoverTest.java
index cafc823615..15d6d3854e 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/catalog/RecoverTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/catalog/RecoverTest.java
@@ -102,17 +102,18 @@ public class RecoverTest {
}
private static boolean checkDbExist(String dbName) {
- return Catalog.getCurrentCatalog().getDb(ClusterNamespace.getFullName(SystemInfoService.DEFAULT_CLUSTER, dbName)).isPresent();
+ return Catalog.getCurrentInternalCatalog()
+ .getDb(ClusterNamespace.getFullName(SystemInfoService.DEFAULT_CLUSTER, dbName)).isPresent();
}
private static boolean checkTableExist(String dbName, String tblName) {
- return Catalog.getCurrentCatalog()
+ return Catalog.getCurrentInternalCatalog()
.getDb(ClusterNamespace.getFullName(SystemInfoService.DEFAULT_CLUSTER, dbName))
.flatMap(db -> db.getTable(tblName)).isPresent();
}
private static boolean checkPartitionExist(String dbName, String tblName, String partName) {
- return Catalog.getCurrentCatalog()
+ return Catalog.getCurrentInternalCatalog()
.getDb(ClusterNamespace.getFullName(SystemInfoService.DEFAULT_CLUSTER, dbName))
.flatMap(db -> db.getTable(tblName)).map(table -> table.getPartition(partName)).isPresent();
}
diff --git a/fe/fe-core/src/test/java/org/apache/doris/catalog/TempPartitionTest.java b/fe/fe-core/src/test/java/org/apache/doris/catalog/TempPartitionTest.java
index 9921dd9f39..33baf228f2 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/catalog/TempPartitionTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/catalog/TempPartitionTest.java
@@ -182,7 +182,7 @@ public class TempPartitionTest {
String createDbStmtStr = "create database db1;";
CreateDbStmt createDbStmt = (CreateDbStmt) UtFrameUtils.parseAndAnalyzeStmt(createDbStmtStr, ctx);
Catalog.getCurrentCatalog().createDb(createDbStmt);
- System.out.println(Catalog.getCurrentCatalog().getDbNames());
+ System.out.println(Catalog.getCurrentInternalCatalog().getDbNames());
// create table tbl1
String createTblStmtStr1 = "create table db1.tbl1(k1 int) distributed by hash(k1)"
+ " buckets 3 properties('replication_num' = '1');";
@@ -207,7 +207,7 @@ public class TempPartitionTest {
String createDbStmtStr = "create database db2;";
CreateDbStmt createDbStmt = (CreateDbStmt) UtFrameUtils.parseAndAnalyzeStmt(createDbStmtStr, ctx);
Catalog.getCurrentCatalog().createDb(createDbStmt);
- System.out.println(Catalog.getCurrentCatalog().getDbNames());
+ System.out.println(Catalog.getCurrentInternalCatalog().getDbNames());
// create table tbl2
String createTblStmtStr1 = "create table db2.tbl2 (k1 int, k2 int)\n"
@@ -222,7 +222,8 @@ public class TempPartitionTest {
CreateTableStmt createTableStmt = (CreateTableStmt) UtFrameUtils.parseAndAnalyzeStmt(createTblStmtStr1, ctx);
Catalog.getCurrentCatalog().createTable(createTableStmt);
- Database db2 = Catalog.getCurrentCatalog().getDbOrAnalysisException("default_cluster:db2");
+ Database db2 =
+ Catalog.getCurrentInternalCatalog().getDbOrAnalysisException("default_cluster:db2");
OlapTable tbl2 = (OlapTable) db2.getTableOrAnalysisException("tbl2");
testSerializeOlapTable(tbl2);
@@ -505,7 +506,7 @@ public class TempPartitionTest {
String createDbStmtStr = "create database db3;";
CreateDbStmt createDbStmt = (CreateDbStmt) UtFrameUtils.parseAndAnalyzeStmt(createDbStmtStr, ctx);
Catalog.getCurrentCatalog().createDb(createDbStmt);
- System.out.println(Catalog.getCurrentCatalog().getDbNames());
+ System.out.println(Catalog.getCurrentInternalCatalog().getDbNames());
// create table tbl3
String createTblStmtStr1 = "create table db3.tbl3 (k1 int, k2 int)\n"
@@ -520,7 +521,7 @@ public class TempPartitionTest {
CreateTableStmt createTableStmt = (CreateTableStmt) UtFrameUtils.parseAndAnalyzeStmt(createTblStmtStr1, ctx);
Catalog.getCurrentCatalog().createTable(createTableStmt);
- Catalog.getCurrentCatalog().getDbOrAnalysisException("default_cluster:db3");
+ Catalog.getCurrentInternalCatalog().getDbOrAnalysisException("default_cluster:db3");
// base range is [min, 10), [10, 20), [20, 30)
@@ -582,7 +583,7 @@ public class TempPartitionTest {
String createDbStmtStr = "create database db4;";
CreateDbStmt createDbStmt = (CreateDbStmt) UtFrameUtils.parseAndAnalyzeStmt(createDbStmtStr, ctx);
Catalog.getCurrentCatalog().createDb(createDbStmt);
- System.out.println(Catalog.getCurrentCatalog().getDbNames());
+ System.out.println(Catalog.getCurrentInternalCatalog().getDbNames());
// create table tbl4
String createTblStmtStr1 = "create table db4.tbl4 (k1 int not null, k2 int)\n"
@@ -597,7 +598,8 @@ public class TempPartitionTest {
CreateTableStmt createTableStmt = (CreateTableStmt) UtFrameUtils.parseAndAnalyzeStmt(createTblStmtStr1, ctx);
Catalog.getCurrentCatalog().createTable(createTableStmt);
- Database db4 = Catalog.getCurrentCatalog().getDbOrAnalysisException("default_cluster:db4");
+ Database db4 =
+ Catalog.getCurrentInternalCatalog().getDbOrAnalysisException("default_cluster:db4");
OlapTable tbl4 = (OlapTable) db4.getTableOrAnalysisException("tbl4");
testSerializeOlapTable(tbl4);
@@ -932,7 +934,7 @@ public class TempPartitionTest {
String createDbStmtStr = "create database db5;";
CreateDbStmt createDbStmt = (CreateDbStmt) UtFrameUtils.parseAndAnalyzeStmt(createDbStmtStr, ctx);
Catalog.getCurrentCatalog().createDb(createDbStmt);
- System.out.println(Catalog.getCurrentCatalog().getDbNames());
+ System.out.println(Catalog.getCurrentInternalCatalog().getDbNames());
// create table tbl5
String createTblStmtStr1 = "create table db5.tbl5 (k1 int not null, k2 varchar not null)\n"
@@ -947,7 +949,8 @@ public class TempPartitionTest {
CreateTableStmt createTableStmt = (CreateTableStmt) UtFrameUtils.parseAndAnalyzeStmt(createTblStmtStr1, ctx);
Catalog.getCurrentCatalog().createTable(createTableStmt);
- Database db5 = Catalog.getCurrentCatalog().getDbOrAnalysisException("default_cluster:db5");
+ Database db5 =
+ Catalog.getCurrentInternalCatalog().getDbOrAnalysisException("default_cluster:db5");
OlapTable tbl5 = (OlapTable) db5.getTableOrAnalysisException("tbl5");
testSerializeOlapTable(tbl5);
diff --git a/fe/fe-core/src/test/java/org/apache/doris/catalog/TruncateTableTest.java b/fe/fe-core/src/test/java/org/apache/doris/catalog/TruncateTableTest.java
index 9fe66df7fd..41fb8e405f 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/catalog/TruncateTableTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/catalog/TruncateTableTest.java
@@ -84,7 +84,7 @@ public class TruncateTableTest {
@Test
public void testTruncateWithCaseInsensitivePartitionName() throws Exception {
- Database db = Catalog.getCurrentCatalog().getDbNullable("default_cluster:test");
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable("default_cluster:test");
OlapTable tbl = db.getOlapTableOrDdlException("case_sensitive_table");
long p20211006Id = tbl.getPartition("P20211006").getId();
long p20211007Id = tbl.getPartition("P20211007").getId();
diff --git a/fe/fe-core/src/test/java/org/apache/doris/clone/DiskRebalanceTest.java b/fe/fe-core/src/test/java/org/apache/doris/clone/DiskRebalanceTest.java
index b4bc9ce249..8046c14fcd 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/clone/DiskRebalanceTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/clone/DiskRebalanceTest.java
@@ -34,6 +34,7 @@ import org.apache.doris.catalog.TabletInvertedIndex;
import org.apache.doris.clone.TabletScheduler.PathSlot;
import org.apache.doris.common.Config;
import org.apache.doris.common.FeConstants;
+import org.apache.doris.datasource.InternalDataSource;
import org.apache.doris.resource.Tag;
import org.apache.doris.system.Backend;
import org.apache.doris.system.SystemInfoService;
@@ -69,6 +70,8 @@ public class DiskRebalanceTest {
@Mocked
private Catalog catalog;
+ @Mocked
+ private InternalDataSource ds;
private long id = 10086;
@@ -85,15 +88,19 @@ public class DiskRebalanceTest {
db.setClusterName(SystemInfoService.DEFAULT_CLUSTER);
new Expectations() {
{
- catalog.getDbIds();
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+
+ ds.getDbIds();
minTimes = 0;
result = db.getId();
- catalog.getDbNullable(anyLong);
+ ds.getDbNullable(anyLong);
minTimes = 0;
result = db;
- catalog.getDbOrException(anyLong, (Function<Long, SchedException>) any);
+ ds.getDbOrException(anyLong, (Function<Long, SchedException>) any);
minTimes = 0;
result = db;
diff --git a/fe/fe-core/src/test/java/org/apache/doris/clone/RebalanceTest.java b/fe/fe-core/src/test/java/org/apache/doris/clone/RebalanceTest.java
index 9d762752e3..826c9dbdbd 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/clone/RebalanceTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/clone/RebalanceTest.java
@@ -35,6 +35,7 @@ import org.apache.doris.common.Config;
import org.apache.doris.common.FeConstants;
import org.apache.doris.common.Pair;
import org.apache.doris.common.jmockit.Deencapsulation;
+import org.apache.doris.datasource.InternalDataSource;
import org.apache.doris.resource.Tag;
import org.apache.doris.system.Backend;
import org.apache.doris.system.SystemInfoService;
@@ -75,6 +76,8 @@ public class RebalanceTest {
@Mocked
private Catalog catalog;
+ @Mocked
+ private InternalDataSource ds;
private long id = 10086;
@@ -91,18 +94,26 @@ public class RebalanceTest {
db.setClusterName(SystemInfoService.DEFAULT_CLUSTER);
new Expectations() {
{
- catalog.getDbIds();
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+
+ ds.getDbIds();
minTimes = 0;
result = db.getId();
- catalog.getDbNullable(anyLong);
+ ds.getDbNullable(anyLong);
minTimes = 0;
result = db;
- catalog.getDbOrException(anyLong, (Function<Long, SchedException>) any);
+ ds.getDbOrException(anyLong, (Function<Long, SchedException>) any);
minTimes = 0;
result = db;
+ Catalog.getCurrentCatalog();
+ minTimes = 0;
+ result = catalog;
+
Catalog.getCurrentCatalogJournalVersion();
minTimes = 0;
result = FeConstants.meta_version;
diff --git a/fe/fe-core/src/test/java/org/apache/doris/clone/TabletRepairAndBalanceTest.java b/fe/fe-core/src/test/java/org/apache/doris/clone/TabletRepairAndBalanceTest.java
index 73385ab046..718857a0aa 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/clone/TabletRepairAndBalanceTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/clone/TabletRepairAndBalanceTest.java
@@ -260,7 +260,7 @@ public class TabletRepairAndBalanceTest {
+ " \"replication_allocation\" = \"tag.location.zone1: 2, tag.location.zone2: 1\"\n"
+ ")";
ExceptionChecker.expectThrowsNoException(() -> createTable(createStr3));
- Database db = Catalog.getCurrentCatalog().getDbNullable("default_cluster:test");
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable("default_cluster:test");
OlapTable tbl = (OlapTable) db.getTableNullable("tbl1");
// alter table's replica allocation failed, tag not enough
diff --git a/fe/fe-core/src/test/java/org/apache/doris/cluster/SystemInfoServiceTest.java b/fe/fe-core/src/test/java/org/apache/doris/cluster/SystemInfoServiceTest.java
index c1904fc3f6..50583fdd17 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/cluster/SystemInfoServiceTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/cluster/SystemInfoServiceTest.java
@@ -29,6 +29,7 @@ import org.apache.doris.common.DdlException;
import org.apache.doris.common.FeConstants;
import org.apache.doris.common.UserException;
import org.apache.doris.common.io.CountingDataOutputStream;
+import org.apache.doris.datasource.InternalDataSource;
import org.apache.doris.persist.EditLog;
import org.apache.doris.qe.ConnectContext;
import org.apache.doris.system.Backend;
@@ -54,6 +55,8 @@ public class SystemInfoServiceTest {
private EditLog editLog;
@Mocked
private Catalog catalog;
+ @Mocked
+ private InternalDataSource ds;
private SystemInfoService systemInfoService;
private TabletInvertedIndex invertedIndex;
@Mocked
@@ -94,7 +97,11 @@ public class SystemInfoServiceTest {
minTimes = 0;
result = editLog;
- catalog.getDbNullable(anyLong);
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+
+ ds.getDbNullable(anyLong);
minTimes = 0;
result = db;
diff --git a/fe/fe-core/src/test/java/org/apache/doris/common/proc/DbsProcDirTest.java b/fe/fe-core/src/test/java/org/apache/doris/common/proc/DbsProcDirTest.java
index f2ede84398..2f98c552dc 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/common/proc/DbsProcDirTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/common/proc/DbsProcDirTest.java
@@ -21,6 +21,7 @@ import org.apache.doris.catalog.Catalog;
import org.apache.doris.catalog.Database;
import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.FeConstants;
+import org.apache.doris.datasource.InternalDataSource;
import com.google.common.collect.Lists;
import mockit.Expectations;
@@ -38,6 +39,8 @@ public class DbsProcDirTest {
private Database db2;
@Mocked
private Catalog catalog;
+ @Mocked
+ private InternalDataSource ds;
// construct test case
// catalog
@@ -65,29 +68,33 @@ public class DbsProcDirTest {
@Test(expected = AnalysisException.class)
public void testLookupNormal() throws AnalysisException {
- new Expectations(catalog) {
+ new Expectations(catalog, ds) {
{
- catalog.getDbNullable("db1");
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+
+ ds.getDbNullable("db1");
minTimes = 0;
result = db1;
- catalog.getDbNullable("db2");
+ ds.getDbNullable("db2");
minTimes = 0;
result = db2;
- catalog.getDbNullable("db3");
+ ds.getDbNullable("db3");
minTimes = 0;
result = null;
- catalog.getDbNullable(db1.getId());
+ ds.getDbNullable(db1.getId());
minTimes = 0;
result = db1;
- catalog.getDbNullable(db2.getId());
+ ds.getDbNullable(db2.getId());
minTimes = 0;
result = db2;
- catalog.getDbNullable(anyLong);
+ ds.getDbNullable(anyLong);
minTimes = 0;
result = null;
}
@@ -105,7 +112,6 @@ public class DbsProcDirTest {
Assert.fail();
}
-
dir = new DbsProcDir(catalog);
try {
node = dir.lookup(String.valueOf(db2.getId()));
@@ -142,33 +148,37 @@ public class DbsProcDirTest {
@Test
public void testFetchResultNormal() throws AnalysisException {
- new Expectations(catalog) {
+ new Expectations(catalog, ds) {
{
- catalog.getDbNames();
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+
+ ds.getDbNames();
minTimes = 0;
result = Lists.newArrayList("db1", "db2");
- catalog.getDbNullable("db1");
+ ds.getDbNullable("db1");
minTimes = 0;
result = db1;
- catalog.getDbNullable("db2");
+ ds.getDbNullable("db2");
minTimes = 0;
result = db2;
- catalog.getDbNullable("db3");
+ ds.getDbNullable("db3");
minTimes = 0;
result = null;
- catalog.getDbNullable(db1.getId());
+ ds.getDbNullable(db1.getId());
minTimes = 0;
result = db1;
- catalog.getDbNullable(db2.getId());
+ ds.getDbNullable(db2.getId());
minTimes = 0;
result = db2;
- catalog.getDbNullable(anyLong);
+ ds.getDbNullable(anyLong);
minTimes = 0;
result = null;
}
@@ -192,9 +202,13 @@ public class DbsProcDirTest {
@Test
public void testFetchResultInvalid() throws AnalysisException {
- new Expectations(catalog) {
+ new Expectations(catalog, ds) {
{
- catalog.getDbNames();
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+
+ ds.getDbNames();
minTimes = 0;
result = null;
}
diff --git a/fe/fe-core/src/test/java/org/apache/doris/common/util/SmallFileMgrTest.java b/fe/fe-core/src/test/java/org/apache/doris/common/util/SmallFileMgrTest.java
index dbd902f172..e6f9bff4ee 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/common/util/SmallFileMgrTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/common/util/SmallFileMgrTest.java
@@ -24,6 +24,7 @@ import org.apache.doris.common.Config;
import org.apache.doris.common.DdlException;
import org.apache.doris.common.jmockit.Deencapsulation;
import org.apache.doris.common.util.SmallFileMgr.SmallFile;
+import org.apache.doris.datasource.InternalDataSource;
import org.apache.doris.persist.EditLog;
import mockit.Expectations;
@@ -38,6 +39,8 @@ public class SmallFileMgrTest {
@Mocked
Catalog catalog;
@Mocked
+ InternalDataSource ds;
+ @Mocked
EditLog editLog;
@Mocked
Database db;
@@ -50,7 +53,10 @@ public class SmallFileMgrTest {
db.getId();
minTimes = 0;
result = 1L;
- catalog.getDbNullable(anyString);
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+ ds.getDbNullable(anyString);
minTimes = 0;
result = db;
stmt1.getDbName();
diff --git a/fe/fe-core/src/test/java/org/apache/doris/external/elasticsearch/EsShardPartitionsTest.java b/fe/fe-core/src/test/java/org/apache/doris/external/elasticsearch/EsShardPartitionsTest.java
index 9766a096e2..667bf16658 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/external/elasticsearch/EsShardPartitionsTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/external/elasticsearch/EsShardPartitionsTest.java
@@ -28,11 +28,10 @@ public class EsShardPartitionsTest extends EsTestCase {
@Test
public void testPartition() throws Exception {
- EsTable esTable = (EsTable) Catalog.getCurrentCatalog()
- .getDbOrMetaException(CatalogTestUtil.testDb1)
- .getTableOrMetaException(CatalogTestUtil.testEsTableId1);
- EsShardPartitions esShardPartitions = EsShardPartitions.findShardPartitions("doe",
- loadJsonFromFile("data/es/test_search_shards.json"));
+ EsTable esTable = (EsTable) Catalog.getCurrentInternalCatalog()
+ .getDbOrMetaException(CatalogTestUtil.testDb1).getTableOrMetaException(CatalogTestUtil.testEsTableId1);
+ EsShardPartitions esShardPartitions =
+ EsShardPartitions.findShardPartitions("doe", loadJsonFromFile("data/es/test_search_shards.json"));
EsTablePartitions esTablePartitions = EsTablePartitions.fromShardPartitions(esTable, esShardPartitions);
Assert.assertNotNull(esTablePartitions);
Assert.assertEquals(1, esTablePartitions.getUnPartitionedIndexStates().size());
diff --git a/fe/fe-core/src/test/java/org/apache/doris/http/DorisHttpTestCase.java b/fe/fe-core/src/test/java/org/apache/doris/http/DorisHttpTestCase.java
index eab29c860d..e2e9c5a906 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/http/DorisHttpTestCase.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/http/DorisHttpTestCase.java
@@ -42,6 +42,7 @@ import org.apache.doris.common.DdlException;
import org.apache.doris.common.ExceptionChecker.ThrowingRunnable;
import org.apache.doris.common.FeConstants;
import org.apache.doris.common.jmockit.Deencapsulation;
+import org.apache.doris.datasource.InternalDataSource;
import org.apache.doris.httpv2.HttpServer;
import org.apache.doris.httpv2.IllegalArgException;
import org.apache.doris.load.Load;
@@ -214,36 +215,46 @@ public abstract class DorisHttpTestCase {
db.createTable(table1);
EsTable esTable = newEsTable("es_table");
db.createTable(esTable);
- new Expectations(catalog) {
- {
- catalog.getAuth();
- minTimes = 0;
- result = paloAuth;
- catalog.getDbNullable(db.getId());
+ InternalDataSource internalDataSource = Deencapsulation.newInstance(InternalDataSource.class);
+ new Expectations(internalDataSource) {
+ {
+ internalDataSource.getDbNullable(db.getId());
minTimes = 0;
result = db;
- catalog.getDbNullable("default_cluster:" + DB_NAME);
+ internalDataSource.getDbNullable("default_cluster:" + DB_NAME);
minTimes = 0;
result = db;
- catalog.isMaster();
- minTimes = 0;
- result = true;
-
- catalog.getDbNullable("default_cluster:emptyDb");
+ internalDataSource.getDbNullable("default_cluster:emptyDb");
minTimes = 0;
result = null;
- catalog.getDbNullable(anyString);
+ internalDataSource.getDbNullable(anyString);
minTimes = 0;
result = new Database();
- catalog.getDbNames();
+ internalDataSource.getDbNames();
minTimes = 0;
result = Lists.newArrayList("default_cluster:testDb");
+ internalDataSource.getClusterDbNames("default_cluster");
+ minTimes = 0;
+ result = Lists.newArrayList("default_cluster:testDb");
+ }
+ };
+
+ new Expectations(catalog) {
+ {
+ catalog.getAuth();
+ minTimes = 0;
+ result = paloAuth;
+
+ catalog.isMaster();
+ minTimes = 0;
+ result = true;
+
catalog.getLoadInstance();
minTimes = 0;
result = new Load();
@@ -252,9 +263,13 @@ public abstract class DorisHttpTestCase {
minTimes = 0;
result = editLog;
- catalog.getClusterDbNames("default_cluster");
+ catalog.getInternalDataSource();
minTimes = 0;
- result = Lists.newArrayList("default_cluster:testDb");
+ result = internalDataSource;
+
+ catalog.getCurrentDataSource();
+ minTimes = 0;
+ result = internalDataSource;
catalog.changeDb((ConnectContext) any, "blockDb");
minTimes = 0;
@@ -266,8 +281,6 @@ public abstract class DorisHttpTestCase {
minTimes = 0;
}
};
-
-
return catalog;
} catch (DdlException e) {
return null;
diff --git a/fe/fe-core/src/test/java/org/apache/doris/load/DeleteHandlerTest.java b/fe/fe-core/src/test/java/org/apache/doris/load/DeleteHandlerTest.java
index e9c80d8260..4d165cad02 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/load/DeleteHandlerTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/load/DeleteHandlerTest.java
@@ -37,6 +37,7 @@ import org.apache.doris.common.FeConstants;
import org.apache.doris.common.MarkedCountDownLatch;
import org.apache.doris.common.UserException;
import org.apache.doris.common.jmockit.Deencapsulation;
+import org.apache.doris.datasource.InternalDataSource;
import org.apache.doris.load.DeleteJob.DeleteState;
import org.apache.doris.mysql.privilege.PaloAuth;
import org.apache.doris.persist.EditLog;
@@ -127,13 +128,22 @@ public class DeleteHandlerTest {
}
};
+ InternalDataSource ds = Deencapsulation.newInstance(InternalDataSource.class);
new Expectations() {
{
- catalog.getDbNullable(anyString);
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+
+ catalog.getCurrentDataSource();
+ minTimes = 0;
+ result = ds;
+
+ ds.getDbNullable(anyString);
minTimes = 0;
result = db;
- catalog.getDbNullable(anyLong);
+ ds.getDbNullable(anyLong);
minTimes = 0;
result = db;
diff --git a/fe/fe-core/src/test/java/org/apache/doris/load/LoadCheckerTest.java b/fe/fe-core/src/test/java/org/apache/doris/load/LoadCheckerTest.java
index e2654b9fc4..7e35704247 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/load/LoadCheckerTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/load/LoadCheckerTest.java
@@ -27,6 +27,7 @@ import org.apache.doris.catalog.Replica;
import org.apache.doris.catalog.Tablet;
import org.apache.doris.common.Config;
import org.apache.doris.common.util.UnitTestUtil;
+import org.apache.doris.datasource.InternalDataSource;
import org.apache.doris.load.FailMsg.CancelType;
import org.apache.doris.load.LoadJob.JobState;
import org.apache.doris.persist.EditLog;
@@ -62,6 +63,8 @@ public class LoadCheckerTest {
@Mocked
private Catalog catalog;
@Mocked
+ private InternalDataSource ds;
+ @Mocked
private EditLog editLog;
@Mocked
private Load load;
@@ -82,11 +85,15 @@ public class LoadCheckerTest {
db = UnitTestUtil.createDb(dbId, tableId, partitionId, indexId, tabletId, backendId, 1L);
new Expectations() {
{
- catalog.getDbNullable(dbId);
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+
+ ds.getDbNullable(dbId);
minTimes = 0;
result = db;
- catalog.getDbNullable(db.getFullName());
+ ds.getDbNullable(db.getFullName());
minTimes = 0;
result = db;
diff --git a/fe/fe-core/src/test/java/org/apache/doris/load/loadv2/BrokerLoadJobTest.java b/fe/fe-core/src/test/java/org/apache/doris/load/loadv2/BrokerLoadJobTest.java
index 4baf3fe09b..ed20ee0435 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/load/loadv2/BrokerLoadJobTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/load/loadv2/BrokerLoadJobTest.java
@@ -34,6 +34,7 @@ import org.apache.doris.common.DdlException;
import org.apache.doris.common.MetaNotFoundException;
import org.apache.doris.common.jmockit.Deencapsulation;
import org.apache.doris.common.util.RuntimeProfile;
+import org.apache.doris.datasource.InternalDataSource;
import org.apache.doris.load.BrokerFileGroup;
import org.apache.doris.load.BrokerFileGroupAggInfo;
import org.apache.doris.load.BrokerFileGroupAggInfo.FileGroupAggKey;
@@ -77,11 +78,9 @@ public class BrokerLoadJobTest {
}
@Test
- public void testFromLoadStmt(@Injectable LoadStmt loadStmt,
- @Injectable LabelName labelName,
- @Injectable DataDescription dataDescription,
- @Mocked Catalog catalog,
- @Injectable Database database) {
+ public void testFromLoadStmt(@Injectable LoadStmt loadStmt, @Injectable LabelName labelName,
+ @Injectable DataDescription dataDescription, @Mocked Catalog catalog, @Mocked InternalDataSource ds,
+ @Injectable Database database) {
List<DataDescription> dataDescriptionList = Lists.newArrayList();
dataDescriptionList.add(dataDescription);
@@ -95,7 +94,10 @@ public class BrokerLoadJobTest {
labelName.getDbName();
minTimes = 0;
result = databaseName;
- catalog.getDbNullable(databaseName);
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+ ds.getDbNullable(databaseName);
minTimes = 0;
result = database;
loadStmt.getDataDescriptions();
@@ -120,12 +122,9 @@ public class BrokerLoadJobTest {
}
@Test
- public void testFromLoadStmt2(@Injectable LoadStmt loadStmt,
- @Injectable DataDescription dataDescription,
- @Injectable LabelName labelName,
- @Injectable Database database,
- @Injectable OlapTable olapTable,
- @Mocked Catalog catalog) {
+ public void testFromLoadStmt2(@Injectable LoadStmt loadStmt, @Injectable DataDescription dataDescription,
+ @Injectable LabelName labelName, @Injectable Database database, @Injectable OlapTable olapTable,
+ @Mocked Catalog catalog, @Mocked InternalDataSource ds) {
String label = "label";
long dbId = 1;
@@ -146,7 +145,10 @@ public class BrokerLoadJobTest {
labelName.getLabelName();
minTimes = 0;
result = label;
- catalog.getDbNullable(databaseName);
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+ ds.getDbNullable(databaseName);
minTimes = 0;
result = database;
loadStmt.getDataDescriptions();
@@ -195,10 +197,8 @@ public class BrokerLoadJobTest {
@Test
public void testGetTableNames(@Injectable BrokerFileGroupAggInfo fileGroupAggInfo,
- @Injectable BrokerFileGroup brokerFileGroup,
- @Mocked Catalog catalog,
- @Injectable Database database,
- @Injectable Table table) throws MetaNotFoundException {
+ @Injectable BrokerFileGroup brokerFileGroup, @Mocked Catalog catalog, @Mocked InternalDataSource ds,
+ @Injectable Database database, @Injectable Table table) throws MetaNotFoundException {
List<BrokerFileGroup> brokerFileGroups = Lists.newArrayList();
brokerFileGroups.add(brokerFileGroup);
Map<FileGroupAggKey, List<BrokerFileGroup>> aggKeyToFileGroups = Maps.newHashMap();
@@ -215,7 +215,10 @@ public class BrokerLoadJobTest {
fileGroupAggInfo.getAllTableIds();
minTimes = 0;
result = Sets.newHashSet(1L);
- catalog.getDb(anyLong);
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+ ds.getDb(anyLong);
minTimes = 0;
result = Optional.of(database);
database.getTable(1L);
@@ -272,16 +275,12 @@ public class BrokerLoadJobTest {
}
@Test
- public void testPendingTaskOnFinished(@Injectable BrokerPendingTaskAttachment attachment,
- @Mocked Catalog catalog,
- @Injectable Database database,
- @Injectable BrokerFileGroupAggInfo fileGroupAggInfo,
- @Injectable BrokerFileGroup brokerFileGroup1,
- @Injectable BrokerFileGroup brokerFileGroup2,
- @Injectable BrokerFileGroup brokerFileGroup3,
- @Mocked MasterTaskExecutor masterTaskExecutor,
- @Injectable OlapTable olapTable,
- @Mocked LoadingTaskPlanner loadingTaskPlanner) {
+ public void testPendingTaskOnFinished(@Injectable BrokerPendingTaskAttachment attachment, @Mocked Catalog catalog,
+ @Mocked InternalDataSource ds, @Injectable Database database,
+ @Injectable BrokerFileGroupAggInfo fileGroupAggInfo, @Injectable BrokerFileGroup brokerFileGroup1,
+ @Injectable BrokerFileGroup brokerFileGroup2, @Injectable BrokerFileGroup brokerFileGroup3,
+ @Mocked MasterTaskExecutor masterTaskExecutor, @Injectable OlapTable olapTable,
+ @Mocked LoadingTaskPlanner loadingTaskPlanner) {
BrokerLoadJob brokerLoadJob = new BrokerLoadJob();
Deencapsulation.setField(brokerLoadJob, "state", JobState.LOADING);
long taskId = 1L;
@@ -308,7 +307,10 @@ public class BrokerLoadJobTest {
attachment.getTaskId();
minTimes = 0;
result = taskId;
- catalog.getDbNullable(anyLong);
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+ ds.getDbNullable(anyLong);
minTimes = 0;
result = database;
fileGroupAggInfo.getAggKeyToFileGroups();
@@ -460,9 +462,8 @@ public class BrokerLoadJobTest {
@Test
public void testLoadingTaskOnFinished(@Injectable BrokerLoadingTaskAttachment attachment1,
- @Injectable LoadTask loadTask1,
- @Mocked Catalog catalog,
- @Injectable Database database) {
+ @Injectable LoadTask loadTask1, @Mocked Catalog catalog, @Mocked InternalDataSource ds,
+ @Injectable Database database) {
BrokerLoadJob brokerLoadJob = new BrokerLoadJob();
Deencapsulation.setField(brokerLoadJob, "state", JobState.LOADING);
Map<Long, LoadTask> idToTasks = Maps.newHashMap();
@@ -479,7 +480,10 @@ public class BrokerLoadJobTest {
attachment1.getTaskId();
minTimes = 0;
result = 1L;
- catalog.getDbNullable(anyLong);
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+ ds.getDbNullable(anyLong);
minTimes = 0;
result = database;
}
diff --git a/fe/fe-core/src/test/java/org/apache/doris/load/loadv2/InsertLoadJobTest.java b/fe/fe-core/src/test/java/org/apache/doris/load/loadv2/InsertLoadJobTest.java
index 69d844f6d7..93ab75c39e 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/load/loadv2/InsertLoadJobTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/load/loadv2/InsertLoadJobTest.java
@@ -22,6 +22,7 @@ import org.apache.doris.catalog.Database;
import org.apache.doris.catalog.Table;
import org.apache.doris.common.MetaNotFoundException;
import org.apache.doris.common.jmockit.Deencapsulation;
+import org.apache.doris.datasource.InternalDataSource;
import mockit.Expectations;
import mockit.Injectable;
@@ -35,14 +36,16 @@ import java.util.Set;
public class InsertLoadJobTest {
@Test
- public void testGetTableNames(@Mocked Catalog catalog,
- @Injectable Database database,
- @Injectable Table table) throws MetaNotFoundException {
+ public void testGetTableNames(@Mocked Catalog catalog, @Mocked InternalDataSource ds, @Injectable Database database,
+ @Injectable Table table) throws MetaNotFoundException {
InsertLoadJob insertLoadJob = new InsertLoadJob("label", 1L, 1L, 1L, 1000, "", "");
String tableName = "table1";
new Expectations() {
{
- catalog.getDb(anyLong);
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+ ds.getDb(anyLong);
result = Optional.of(database);
database.getTable(anyLong);
result = Optional.of(table);
diff --git a/fe/fe-core/src/test/java/org/apache/doris/load/loadv2/LoadManagerTest.java b/fe/fe-core/src/test/java/org/apache/doris/load/loadv2/LoadManagerTest.java
index 6a28a33c50..5996620ea0 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/load/loadv2/LoadManagerTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/load/loadv2/LoadManagerTest.java
@@ -27,6 +27,7 @@ import org.apache.doris.common.DdlException;
import org.apache.doris.common.FeMetaVersion;
import org.apache.doris.common.LabelAlreadyUsedException;
import org.apache.doris.common.jmockit.Deencapsulation;
+import org.apache.doris.datasource.InternalDataSource;
import org.apache.doris.load.EtlJobType;
import org.apache.doris.meta.MetaContext;
@@ -66,11 +67,8 @@ public class LoadManagerTest {
}
@Test
- public void testCreateHadoopJob(@Injectable LoadStmt stmt,
- @Injectable LabelName labelName,
- @Mocked Catalog catalog,
- @Injectable Database database,
- @Injectable BrokerLoadJob brokerLoadJob) {
+ public void testCreateHadoopJob(@Injectable LoadStmt stmt, @Injectable LabelName labelName, @Mocked Catalog catalog,
+ @Mocked InternalDataSource ds, @Injectable Database database, @Injectable BrokerLoadJob brokerLoadJob) {
Map<Long, Map<String, List<LoadJob>>> dbIdToLabelToLoadJobs = Maps.newHashMap();
Map<String, List<LoadJob>> labelToLoadJobs = Maps.newHashMap();
String label1 = "label1";
@@ -89,7 +87,10 @@ public class LoadManagerTest {
labelName.getLabelName();
minTimes = 0;
result = "label1";
- catalog.getDbNullable(anyString);
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+ ds.getDbNullable(anyString);
minTimes = 0;
result = database;
database.getId();
@@ -110,12 +111,14 @@ public class LoadManagerTest {
}
@Test
- public void testSerializationNormal(@Mocked Catalog catalog,
- @Injectable Database database,
- @Injectable Table table) throws Exception {
+ public void testSerializationNormal(@Mocked Catalog catalog, @Mocked InternalDataSource ds,
+ @Injectable Database database, @Injectable Table table) throws Exception {
new Expectations() {
{
- catalog.getDbNullable(anyLong);
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+ ds.getDbNullable(anyLong);
minTimes = 0;
result = database;
database.getTableNullable(anyLong);
@@ -144,13 +147,14 @@ public class LoadManagerTest {
}
@Test
- public void testSerializationWithJobRemoved(@Mocked MetaContext metaContext,
- @Mocked Catalog catalog,
- @Injectable Database database,
- @Injectable Table table) throws Exception {
+ public void testSerializationWithJobRemoved(@Mocked MetaContext metaContext, @Mocked Catalog catalog,
+ @Mocked InternalDataSource ds, @Injectable Database database, @Injectable Table table) throws Exception {
new Expectations() {
{
- catalog.getDbNullable(anyLong);
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+ ds.getDbNullable(anyLong);
minTimes = 0;
result = database;
database.getTableNullable(anyLong);
diff --git a/fe/fe-core/src/test/java/org/apache/doris/load/loadv2/SparkLoadJobTest.java b/fe/fe-core/src/test/java/org/apache/doris/load/loadv2/SparkLoadJobTest.java
index 9fe32fd36a..5bca9f73b4 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/load/loadv2/SparkLoadJobTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/load/loadv2/SparkLoadJobTest.java
@@ -44,6 +44,7 @@ import org.apache.doris.common.LoadException;
import org.apache.doris.common.MetaNotFoundException;
import org.apache.doris.common.Pair;
import org.apache.doris.common.jmockit.Deencapsulation;
+import org.apache.doris.datasource.InternalDataSource;
import org.apache.doris.load.EtlJobType;
import org.apache.doris.load.EtlStatus;
import org.apache.doris.load.loadv2.LoadJob.LoadJobStateUpdateInfo;
@@ -127,10 +128,10 @@ public class SparkLoadJobTest {
}
@Test
- public void testCreateFromLoadStmt(@Mocked Catalog catalog, @Injectable LoadStmt loadStmt,
- @Injectable DataDescription dataDescription, @Injectable LabelName labelName,
- @Injectable Database db, @Injectable OlapTable olapTable,
- @Injectable ResourceMgr resourceMgr) throws Exception {
+ public void testCreateFromLoadStmt(@Mocked Catalog catalog, @Mocked InternalDataSource ds,
+ @Injectable LoadStmt loadStmt, @Injectable DataDescription dataDescription, @Injectable LabelName labelName,
+ @Injectable Database db, @Injectable OlapTable olapTable, @Injectable ResourceMgr resourceMgr)
+ throws Exception {
List<DataDescription> dataDescriptionList = Lists.newArrayList();
dataDescriptionList.add(dataDescription);
Map<String, String> resourceProperties = Maps.newHashMap();
@@ -144,7 +145,11 @@ public class SparkLoadJobTest {
new Expectations() {
{
- catalog.getDbOrDdlException(dbName);
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+ ds.getDbOrDdlException(dbName);
+ minTimes = 0;
result = db;
catalog.getResourceMgr();
result = resourceMgr;
diff --git a/fe/fe-core/src/test/java/org/apache/doris/load/routineload/RoutineLoadJobTest.java b/fe/fe-core/src/test/java/org/apache/doris/load/routineload/RoutineLoadJobTest.java
index e4b0282cb4..63cac770ac 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/load/routineload/RoutineLoadJobTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/load/routineload/RoutineLoadJobTest.java
@@ -27,6 +27,7 @@ import org.apache.doris.common.InternalErrorCode;
import org.apache.doris.common.UserException;
import org.apache.doris.common.jmockit.Deencapsulation;
import org.apache.doris.common.util.KafkaUtil;
+import org.apache.doris.datasource.InternalDataSource;
import org.apache.doris.persist.EditLog;
import org.apache.doris.thrift.TKafkaRLTaskProgress;
import org.apache.doris.transaction.TransactionException;
@@ -191,10 +192,18 @@ public class RoutineLoadJobTest {
}
@Test
- public void testUpdateWhileDbDeleted(@Mocked Catalog catalog) throws UserException {
+ public void testUpdateWhileDbDeleted(@Mocked Catalog catalog, @Mocked InternalDataSource ds) throws UserException {
new Expectations() {
{
- catalog.getDbNullable(anyLong);
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+ }
+ };
+
+ new Expectations() {
+ {
+ ds.getDbNullable(anyLong);
minTimes = 0;
result = null;
}
@@ -207,11 +216,14 @@ public class RoutineLoadJobTest {
}
@Test
- public void testUpdateWhileTableDeleted(@Mocked Catalog catalog,
- @Injectable Database database) throws UserException {
+ public void testUpdateWhileTableDeleted(@Mocked Catalog catalog, @Mocked InternalDataSource ds,
+ @Injectable Database database) throws UserException {
new Expectations() {
{
- catalog.getDbNullable(anyLong);
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+ ds.getDbNullable(anyLong);
minTimes = 0;
result = database;
database.getTableNullable(anyLong);
@@ -226,17 +238,18 @@ public class RoutineLoadJobTest {
}
@Test
- public void testUpdateWhilePartitionChanged(@Mocked Catalog catalog,
- @Injectable Database database,
- @Injectable Table table,
- @Injectable PartitionInfo partitionInfo,
- @Injectable KafkaProgress kafkaProgress) throws UserException {
+ public void testUpdateWhilePartitionChanged(@Mocked Catalog catalog, @Mocked InternalDataSource ds,
+ @Injectable Database database, @Injectable Table table, @Injectable PartitionInfo partitionInfo,
+ @Injectable KafkaProgress kafkaProgress) throws UserException {
List<PartitionInfo> partitionInfoList = Lists.newArrayList();
partitionInfoList.add(partitionInfo);
new Expectations() {
{
- catalog.getDbNullable(anyLong);
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+ ds.getDbNullable(anyLong);
minTimes = 0;
result = database;
database.getTableNullable(anyLong);
diff --git a/fe/fe-core/src/test/java/org/apache/doris/load/routineload/RoutineLoadManagerTest.java b/fe/fe-core/src/test/java/org/apache/doris/load/routineload/RoutineLoadManagerTest.java
index a0b0a89fde..c4fddfe0a5 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/load/routineload/RoutineLoadManagerTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/load/routineload/RoutineLoadManagerTest.java
@@ -36,6 +36,7 @@ import org.apache.doris.common.MetaNotFoundException;
import org.apache.doris.common.PatternMatcher;
import org.apache.doris.common.UserException;
import org.apache.doris.common.jmockit.Deencapsulation;
+import org.apache.doris.datasource.InternalDataSource;
import org.apache.doris.load.loadv2.LoadTask;
import org.apache.doris.mysql.privilege.PaloAuth;
import org.apache.doris.mysql.privilege.PrivPredicate;
@@ -540,10 +541,9 @@ public class RoutineLoadManagerTest {
@Test
public void testGetJobIncludeHistory(@Injectable RoutineLoadJob routineLoadJob1,
- @Injectable RoutineLoadJob routineLoadJob2,
- @Injectable RoutineLoadJob routineLoadJob3,
- @Mocked Catalog catalog,
- @Mocked Database database) throws MetaNotFoundException {
+ @Injectable RoutineLoadJob routineLoadJob2, @Injectable RoutineLoadJob routineLoadJob3,
+ @Mocked Catalog catalog, @Mocked InternalDataSource ds, @Mocked Database database)
+ throws MetaNotFoundException {
new Expectations() {
{
routineLoadJob1.isFinal();
@@ -555,7 +555,10 @@ public class RoutineLoadManagerTest {
routineLoadJob3.isFinal();
minTimes = 0;
result = true;
- catalog.getDbNullable(anyString);
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+ ds.getDbNullable(anyString);
minTimes = 0;
result = database;
database.getId();
@@ -583,11 +586,9 @@ public class RoutineLoadManagerTest {
}
@Test
- public void testPauseRoutineLoadJob(@Injectable PauseRoutineLoadStmt pauseRoutineLoadStmt,
- @Mocked Catalog catalog,
- @Mocked Database database,
- @Mocked PaloAuth paloAuth,
- @Mocked ConnectContext connectContext) throws UserException {
+ public void testPauseRoutineLoadJob(@Injectable PauseRoutineLoadStmt pauseRoutineLoadStmt, @Mocked Catalog catalog,
+ @Mocked InternalDataSource ds, @Mocked Database database, @Mocked PaloAuth paloAuth,
+ @Mocked ConnectContext connectContext) throws UserException {
RoutineLoadManager routineLoadManager = new RoutineLoadManager();
Map<Long, Map<String, List<RoutineLoadJob>>> dbToNameToRoutineLoadJob = Maps.newHashMap();
Map<String, List<RoutineLoadJob>> nameToRoutineLoadJob = Maps.newHashMap();
@@ -610,7 +611,10 @@ public class RoutineLoadManagerTest {
pauseRoutineLoadStmt.getName();
minTimes = 0;
result = "";
- catalog.getDbNullable("");
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+ ds.getDbNullable("");
minTimes = 0;
result = database;
database.getId();
@@ -648,10 +652,8 @@ public class RoutineLoadManagerTest {
@Test
public void testResumeRoutineLoadJob(@Injectable ResumeRoutineLoadStmt resumeRoutineLoadStmt,
- @Mocked Catalog catalog,
- @Mocked Database database,
- @Mocked PaloAuth paloAuth,
- @Mocked ConnectContext connectContext) throws UserException {
+ @Mocked Catalog catalog, @Mocked InternalDataSource ds, @Mocked Database database,
+ @Mocked PaloAuth paloAuth, @Mocked ConnectContext connectContext) throws UserException {
RoutineLoadManager routineLoadManager = new RoutineLoadManager();
Map<Long, Map<String, List<RoutineLoadJob>>> dbToNameToRoutineLoadJob = Maps.newHashMap();
Map<String, List<RoutineLoadJob>> nameToRoutineLoadJob = Maps.newHashMap();
@@ -670,7 +672,10 @@ public class RoutineLoadManagerTest {
resumeRoutineLoadStmt.getName();
minTimes = 0;
result = "";
- catalog.getDbNullable("");
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+ ds.getDbNullable("");
minTimes = 0;
result = database;
database.getId();
@@ -691,11 +696,9 @@ public class RoutineLoadManagerTest {
}
@Test
- public void testStopRoutineLoadJob(@Injectable StopRoutineLoadStmt stopRoutineLoadStmt,
- @Mocked Catalog catalog,
- @Mocked Database database,
- @Mocked PaloAuth paloAuth,
- @Mocked ConnectContext connectContext) throws UserException {
+ public void testStopRoutineLoadJob(@Injectable StopRoutineLoadStmt stopRoutineLoadStmt, @Mocked Catalog catalog,
+ @Mocked InternalDataSource ds, @Mocked Database database, @Mocked PaloAuth paloAuth,
+ @Mocked ConnectContext connectContext) throws UserException {
RoutineLoadManager routineLoadManager = new RoutineLoadManager();
Map<Long, Map<String, List<RoutineLoadJob>>> dbToNameToRoutineLoadJob = Maps.newHashMap();
Map<String, List<RoutineLoadJob>> nameToRoutineLoadJob = Maps.newHashMap();
@@ -714,7 +717,10 @@ public class RoutineLoadManagerTest {
stopRoutineLoadStmt.getName();
minTimes = 0;
result = "";
- catalog.getDbNullable("");
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+ ds.getDbNullable("");
minTimes = 0;
result = database;
database.getId();
@@ -887,10 +893,8 @@ public class RoutineLoadManagerTest {
}
@Test
- public void testAlterRoutineLoadJob(@Injectable StopRoutineLoadStmt stopRoutineLoadStmt,
- @Mocked Catalog catalog,
- @Mocked Database database,
- @Mocked PaloAuth paloAuth,
+ public void testAlterRoutineLoadJob(@Injectable StopRoutineLoadStmt stopRoutineLoadStmt, @Mocked Catalog catalog,
+ @Mocked InternalDataSource ds, @Mocked Database database, @Mocked PaloAuth paloAuth,
@Mocked ConnectContext connectContext) throws UserException {
RoutineLoadManager routineLoadManager = new RoutineLoadManager();
Map<Long, Map<String, List<RoutineLoadJob>>> dbToNameToRoutineLoadJob = Maps.newHashMap();
@@ -910,7 +914,10 @@ public class RoutineLoadManagerTest {
stopRoutineLoadStmt.getName();
minTimes = 0;
result = "";
- catalog.getDbNullable("");
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+ ds.getDbNullable("");
minTimes = 0;
result = database;
database.getId();
@@ -932,11 +939,9 @@ public class RoutineLoadManagerTest {
@Test
public void testPauseAndResumeAllRoutineLoadJob(@Injectable PauseRoutineLoadStmt pauseRoutineLoadStmt,
- @Injectable ResumeRoutineLoadStmt resumeRoutineLoadStmt,
- @Mocked Catalog catalog,
- @Mocked Database database,
- @Mocked PaloAuth paloAuth,
- @Mocked ConnectContext connectContext) throws UserException {
+ @Injectable ResumeRoutineLoadStmt resumeRoutineLoadStmt, @Mocked Catalog catalog,
+ @Mocked InternalDataSource ds, @Mocked Database database, @Mocked PaloAuth paloAuth,
+ @Mocked ConnectContext connectContext) throws UserException {
RoutineLoadManager routineLoadManager = new RoutineLoadManager();
Map<Long, Map<String, List<RoutineLoadJob>>> dbToNameToRoutineLoadJob = Maps.newHashMap();
Map<String, List<RoutineLoadJob>> nameToRoutineLoadJob = Maps.newHashMap();
@@ -967,7 +972,10 @@ public class RoutineLoadManagerTest {
pauseRoutineLoadStmt.getDbFullName();
minTimes = 0;
result = "";
- catalog.getDb("");
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+ ds.getDb("");
minTimes = 0;
result = database;
database.getId();
diff --git a/fe/fe-core/src/test/java/org/apache/doris/load/routineload/RoutineLoadSchedulerTest.java b/fe/fe-core/src/test/java/org/apache/doris/load/routineload/RoutineLoadSchedulerTest.java
index 3d697f8d09..7c2deb5cbd 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/load/routineload/RoutineLoadSchedulerTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/load/routineload/RoutineLoadSchedulerTest.java
@@ -26,6 +26,7 @@ import org.apache.doris.common.LoadException;
import org.apache.doris.common.MetaNotFoundException;
import org.apache.doris.common.ThreadPoolManager;
import org.apache.doris.common.jmockit.Deencapsulation;
+import org.apache.doris.datasource.InternalDataSource;
import org.apache.doris.load.RoutineLoadDesc;
import org.apache.doris.planner.StreamLoadPlanner;
import org.apache.doris.qe.ConnectContext;
@@ -53,13 +54,10 @@ public class RoutineLoadSchedulerTest {
TResourceInfo tResourceInfo;
@Test
- public void testNormalRunOneCycle(@Mocked Catalog catalog,
- @Injectable RoutineLoadManager routineLoadManager,
- @Injectable SystemInfoService systemInfoService,
- @Injectable Database database,
- @Injectable RoutineLoadDesc routineLoadDesc,
- @Mocked StreamLoadPlanner planner,
- @Injectable OlapTable olapTable)
+ public void testNormalRunOneCycle(@Mocked Catalog catalog, @Mocked InternalDataSource ds,
+ @Injectable RoutineLoadManager routineLoadManager, @Injectable SystemInfoService systemInfoService,
+ @Injectable Database database, @Injectable RoutineLoadDesc routineLoadDesc,
+ @Mocked StreamLoadPlanner planner, @Injectable OlapTable olapTable)
throws LoadException, MetaNotFoundException {
String clusterName = "default";
List<Long> beIds = Lists.newArrayList();
@@ -91,7 +89,10 @@ public class RoutineLoadSchedulerTest {
routineLoadManager.getRoutineLoadJobByState(Sets.newHashSet(RoutineLoadJob.JobState.NEED_SCHEDULE));
minTimes = 0;
result = routineLoadJobList;
- catalog.getDbNullable(anyLong);
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+ ds.getDbNullable(anyLong);
minTimes = 0;
result = database;
database.getTableNullable(1L);
@@ -126,9 +127,9 @@ public class RoutineLoadSchedulerTest {
}
}
- public void functionTest(@Mocked Catalog catalog,
- @Mocked SystemInfoService systemInfoService,
- @Injectable Database database) throws DdlException, InterruptedException {
+ public void functionTest(@Mocked Catalog catalog, @Mocked InternalDataSource ds,
+ @Mocked SystemInfoService systemInfoService, @Injectable Database database)
+ throws DdlException, InterruptedException {
new Expectations() {
{
connectContext.toResourceCtx();
@@ -150,7 +151,10 @@ public class RoutineLoadSchedulerTest {
catalog.getRoutineLoadManager();
minTimes = 0;
result = routineLoadManager;
- catalog.getDbNullable(anyLong);
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+ ds.getDbNullable(anyLong);
minTimes = 0;
result = database;
systemInfoService.getBackendIds(true);
diff --git a/fe/fe-core/src/test/java/org/apache/doris/load/sync/SyncJobManagerTest.java b/fe/fe-core/src/test/java/org/apache/doris/load/sync/SyncJobManagerTest.java
index 36cad3016b..bcffee0308 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/load/sync/SyncJobManagerTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/load/sync/SyncJobManagerTest.java
@@ -26,6 +26,7 @@ import org.apache.doris.catalog.Database;
import org.apache.doris.common.DdlException;
import org.apache.doris.common.UserException;
import org.apache.doris.common.jmockit.Deencapsulation;
+import org.apache.doris.datasource.InternalDataSource;
import org.apache.doris.load.sync.SyncFailMsg.MsgType;
import org.apache.doris.load.sync.SyncJob.JobState;
import org.apache.doris.load.sync.SyncJob.SyncJobUpdateStateInfo;
@@ -60,6 +61,8 @@ public class SyncJobManagerTest {
@Mocked
Catalog catalog;
@Mocked
+ InternalDataSource ds;
+ @Mocked
Database database;
@Mocked
SyncCanalClient client;
@@ -71,13 +74,17 @@ public class SyncJobManagerTest {
catalog.getEditLog();
minTimes = 0;
result = editLog;
- catalog.getDbNullable(anyString);
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+ ds.getDbNullable(anyString);
minTimes = 0;
result = database;
database.getId();
minTimes = 0;
result = dbId;
Catalog.getCurrentCatalog();
+ minTimes = 0;
result = catalog;
}
};
diff --git a/fe/fe-core/src/test/java/org/apache/doris/load/sync/canal/CanalSyncJobTest.java b/fe/fe-core/src/test/java/org/apache/doris/load/sync/canal/CanalSyncJobTest.java
index 3995839fef..c9e195cc71 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/load/sync/canal/CanalSyncJobTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/load/sync/canal/CanalSyncJobTest.java
@@ -27,6 +27,7 @@ import org.apache.doris.catalog.OlapTable;
import org.apache.doris.common.DdlException;
import org.apache.doris.common.UserException;
import org.apache.doris.common.jmockit.Deencapsulation;
+import org.apache.doris.datasource.InternalDataSource;
import org.apache.doris.load.sync.DataSyncJobType;
import org.apache.doris.load.sync.SyncChannel;
import org.apache.doris.load.sync.SyncFailMsg;
@@ -61,6 +62,7 @@ public class CanalSyncJobTest {
private String tblName;
private String jobName;
private Catalog catalog;
+ private InternalDataSource ds;
private Map<String, String> properties;
@Mocked
@@ -86,16 +88,25 @@ public class CanalSyncJobTest {
properties.put(CanalSyncJob.CANAL_USERNAME, "test_user");
properties.put(CanalSyncJob.CANAL_PASSWORD, "test_password");
- catalog = Deencapsulation.newInstance(Catalog.class);
- new Expectations(catalog) {
+ ds = Deencapsulation.newInstance(InternalDataSource.class);
+ new Expectations(ds) {
{
- catalog.getDbNullable(10000L);
+ ds.getDbNullable(10000L);
minTimes = 0;
result = database;
- catalog.getDbNullable("testDb");
+ ds.getDbNullable("testDb");
minTimes = 0;
result = database;
+ }
+ };
+
+ catalog = Deencapsulation.newInstance(Catalog.class);
+ new Expectations(catalog) {
+ {
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
catalog.getEditLog();
minTimes = 0;
diff --git a/fe/fe-core/src/test/java/org/apache/doris/mysql/MysqlProtoTest.java b/fe/fe-core/src/test/java/org/apache/doris/mysql/MysqlProtoTest.java
index eb4459918b..377ffb9d92 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/mysql/MysqlProtoTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/mysql/MysqlProtoTest.java
@@ -54,6 +54,8 @@ public class MysqlProtoTest {
@Mocked
private Catalog catalog;
@Mocked
+ private InternalDataSource ds;
+ @Mocked
private PaloAuth auth;
@Mocked
private LdapClient ldapClient;
@@ -75,8 +77,8 @@ public class MysqlProtoTest {
auth.checkPassword(anyString, anyString, (byte[]) any, (byte[]) any, (List<UserIdentity>) any);
minTimes = 0;
result = new Delegate() {
- boolean fakeCheckPassword(String remoteUser, String remoteHost, byte[] remotePasswd, byte[] randomString,
- List<UserIdentity> currentUser) {
+ boolean fakeCheckPassword(String remoteUser, String remoteHost, byte[] remotePasswd,
+ byte[] randomString, List<UserIdentity> currentUser) {
UserIdentity userIdentity = new UserIdentity("default_cluster:user", "192.168.1.1");
currentUser.add(userIdentity);
return true;
@@ -85,9 +87,9 @@ public class MysqlProtoTest {
catalog.getInternalDataSource();
minTimes = 0;
- result = new InternalDataSource();
+ result = ds;
- catalog.getDbNullable(anyString);
+ ds.getDbNullable(anyString);
minTimes = 0;
result = new Database();
diff --git a/fe/fe-core/src/test/java/org/apache/doris/mysql/privilege/PrivEntryTest.java b/fe/fe-core/src/test/java/org/apache/doris/mysql/privilege/PrivEntryTest.java
index 8e9a3f173b..9528d227ff 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/mysql/privilege/PrivEntryTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/mysql/privilege/PrivEntryTest.java
@@ -18,6 +18,7 @@
package org.apache.doris.mysql.privilege;
import org.apache.doris.analysis.UserIdentity;
+import org.apache.doris.datasource.InternalDataSource;
import org.junit.Assert;
import org.junit.Test;
@@ -25,9 +26,8 @@ import org.junit.Test;
public class PrivEntryTest {
@Test
public void testNameWithUnderscores() throws Exception {
- TablePrivEntry tablePrivEntry = TablePrivEntry.create(
- "user1", "127.%", "__internal", "db_db1", "tbl_tbl1", false,
- PrivBitSet.of(PaloPrivilege.SELECT_PRIV, PaloPrivilege.DROP_PRIV));
+ TablePrivEntry tablePrivEntry = TablePrivEntry.create("user1", "127.%", InternalDataSource.INTERNAL_DS_NAME,
+ "db_db1", "tbl_tbl1", false, PrivBitSet.of(PaloPrivilege.SELECT_PRIV, PaloPrivilege.DROP_PRIV));
// pattern match
Assert.assertFalse(tablePrivEntry.getDbPattern().match("db-db1"));
Assert.assertFalse(tablePrivEntry.getTblPattern().match("tbl-tbl1"));
@@ -42,7 +42,7 @@ public class PrivEntryTest {
Assert.assertFalse(PaloPrivilege.satisfy(privs1, PrivPredicate.DROP));
PrivBitSet privs2 = PrivBitSet.of();
- tablePrivTable.getPrivs(userIdentity, "__internal", "db_db1", "tbl_tbl1", privs2);
+ tablePrivTable.getPrivs(userIdentity, InternalDataSource.INTERNAL_DS_NAME, "db_db1", "tbl_tbl1", privs2);
Assert.assertTrue(PaloPrivilege.satisfy(privs2, PrivPredicate.DROP));
}
}
diff --git a/fe/fe-core/src/test/java/org/apache/doris/persist/LoadJobV2PersistTest.java b/fe/fe-core/src/test/java/org/apache/doris/persist/LoadJobV2PersistTest.java
index 093d6dd0c4..01df7b6f44 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/persist/LoadJobV2PersistTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/persist/LoadJobV2PersistTest.java
@@ -24,6 +24,7 @@ import org.apache.doris.catalog.Catalog;
import org.apache.doris.catalog.Database;
import org.apache.doris.catalog.Table;
import org.apache.doris.common.FeMetaVersion;
+import org.apache.doris.datasource.InternalDataSource;
import org.apache.doris.load.EtlJobType;
import org.apache.doris.load.loadv2.BrokerLoadJob;
import org.apache.doris.qe.OriginStatement;
@@ -56,13 +57,15 @@ public class LoadJobV2PersistTest {
}
@Test
- public void testBrokerLoadJob(@Mocked Catalog catalog,
- @Injectable Database database,
- @Injectable Table table) throws Exception {
+ public void testBrokerLoadJob(@Mocked Catalog catalog, @Mocked InternalDataSource ds, @Injectable Database database,
+ @Injectable Table table) throws Exception {
new Expectations() {
{
- catalog.getDbNullable(anyLong);
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+ ds.getDbNullable(anyLong);
minTimes = 0;
result = database;
database.getTableNullable(anyLong);
diff --git a/fe/fe-core/src/test/java/org/apache/doris/planner/QueryPlanTest.java b/fe/fe-core/src/test/java/org/apache/doris/planner/QueryPlanTest.java
index de4ca4ccc3..a439072b39 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/planner/QueryPlanTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/planner/QueryPlanTest.java
@@ -1077,7 +1077,7 @@ public class QueryPlanTest extends TestWithFeService {
Deencapsulation.setField(connectContext.getSessionVariable(), "enableBucketShuffleJoin", true);
// set data size and row count for the olap table
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException("default_cluster:test");
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException("default_cluster:test");
OlapTable tbl = (OlapTable) db.getTableOrMetaException("bucket_shuffle1");
for (Partition partition : tbl.getPartitions()) {
partition.updateVisibleVersion(2);
@@ -1091,7 +1091,7 @@ public class QueryPlanTest extends TestWithFeService {
}
}
- db = Catalog.getCurrentCatalog().getDbOrMetaException("default_cluster:test");
+ db = Catalog.getCurrentInternalCatalog().getDbOrMetaException("default_cluster:test");
tbl = (OlapTable) db.getTableOrMetaException("bucket_shuffle2");
for (Partition partition : tbl.getPartitions()) {
partition.updateVisibleVersion(2);
@@ -1169,7 +1169,7 @@ public class QueryPlanTest extends TestWithFeService {
connectContext.setDatabase("default_cluster:test");
// set data size and row count for the olap table
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException("default_cluster:test");
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException("default_cluster:test");
OlapTable tbl = (OlapTable) db.getTableOrMetaException("jointest");
for (Partition partition : tbl.getPartitions()) {
partition.updateVisibleVersion(2);
@@ -1219,7 +1219,7 @@ public class QueryPlanTest extends TestWithFeService {
connectContext.setDatabase("default_cluster:test");
// set data size and row count for the olap table
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException("default_cluster:test");
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException("default_cluster:test");
OlapTable tbl = (OlapTable) db.getTableOrMetaException("jointest");
for (Partition partition : tbl.getPartitions()) {
partition.updateVisibleVersion(2);
diff --git a/fe/fe-core/src/test/java/org/apache/doris/planner/ResourceTagQueryTest.java b/fe/fe-core/src/test/java/org/apache/doris/planner/ResourceTagQueryTest.java
index d202919e5b..76c7386f35 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/planner/ResourceTagQueryTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/planner/ResourceTagQueryTest.java
@@ -191,7 +191,7 @@ public class ResourceTagQueryTest {
+ ")\n"
+ "distributed by hash(k2) buckets 10;";
ExceptionChecker.expectThrowsNoException(() -> createTable(createStr));
- Database db = Catalog.getCurrentCatalog().getDbNullable("default_cluster:test");
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable("default_cluster:test");
OlapTable tbl = (OlapTable) db.getTableNullable("tbl1");
Set<Tag> userTags = Catalog.getCurrentCatalog().getAuth().getResourceTags(PaloAuth.ROOT_USER);
diff --git a/fe/fe-core/src/test/java/org/apache/doris/qe/PartitionCacheTest.java b/fe/fe-core/src/test/java/org/apache/doris/qe/PartitionCacheTest.java
index d5eddb3e5f..8daaff95b9 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/qe/PartitionCacheTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/qe/PartitionCacheTest.java
@@ -47,6 +47,7 @@ import org.apache.doris.common.UserException;
import org.apache.doris.common.jmockit.Deencapsulation;
import org.apache.doris.common.util.SqlParserUtils;
import org.apache.doris.common.util.Util;
+import org.apache.doris.datasource.InternalDataSource;
import org.apache.doris.metric.MetricRepo;
import org.apache.doris.mysql.MysqlChannel;
import org.apache.doris.mysql.MysqlSerializer;
@@ -112,6 +113,8 @@ public class PartitionCacheTest {
@Mocked
private Catalog catalog;
@Mocked
+ private InternalDataSource ds;
+ @Mocked
private ConnectContext ctx;
@Mocked
MysqlChannel channel;
@@ -168,29 +171,41 @@ public class PartitionCacheTest {
db.createTable(view3);
db.createTable(view4);
- new Expectations(catalog) {
+ new Expectations(ds) {
{
- catalog.getAuth();
- minTimes = 0;
- result = auth;
-
- catalog.getDbNullable(fullDbName);
+ ds.getDbNullable(fullDbName);
minTimes = 0;
result = db;
- catalog.getDbNullable(dbName);
+ ds.getDbNullable(dbName);
minTimes = 0;
result = db;
- catalog.getDbNullable(db.getId());
+ ds.getDbNullable(db.getId());
minTimes = 0;
result = db;
- catalog.getDbNames();
+ ds.getDbNames();
minTimes = 0;
result = Lists.newArrayList(fullDbName);
}
};
+
+ new Expectations(catalog) {
+ {
+ catalog.getAuth();
+ minTimes = 0;
+ result = auth;
+
+ catalog.getCurrentDataSource();
+ minTimes = 0;
+ result = ds;
+
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+ }
+ };
FunctionSet fs = new FunctionSet();
fs.init();
Deencapsulation.setField(catalog, "functionSet", fs);
diff --git a/fe/fe-core/src/test/java/org/apache/doris/qe/ShowExecutorTest.java b/fe/fe-core/src/test/java/org/apache/doris/qe/ShowExecutorTest.java
index eb2db677e3..4760f6f498 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/qe/ShowExecutorTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/qe/ShowExecutorTest.java
@@ -50,6 +50,7 @@ import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.PatternMatcher;
import org.apache.doris.common.UserException;
import org.apache.doris.common.jmockit.Deencapsulation;
+import org.apache.doris.datasource.InternalDataSource;
import org.apache.doris.mysql.MysqlCommand;
import org.apache.doris.mysql.privilege.PaloAuth;
import org.apache.doris.system.SystemInfoService;
@@ -73,6 +74,7 @@ import java.util.List;
public class ShowExecutorTest {
private ConnectContext ctx;
private Catalog catalog;
+ private InternalDataSource ds;
@Rule
public ExpectedException expectedEx = ExpectedException.none();
@@ -165,25 +167,39 @@ public class ShowExecutorTest {
// mock auth
PaloAuth auth = AccessTestUtil.fetchAdminAccess();
- // mock catalog.
- catalog = Deencapsulation.newInstance(Catalog.class);
- new Expectations(catalog) {
+ // mock ds
+ ds = Deencapsulation.newInstance(InternalDataSource.class);
+ new Expectations(ds) {
{
- catalog.getDbNullable("testCluster:testDb");
+ ds.getDbNullable("testCluster:testDb");
minTimes = 0;
result = db;
- catalog.getDbNullable("testCluster:emptyDb");
+ ds.getDbNullable("testCluster:emptyDb");
minTimes = 0;
result = null;
- catalog.getClusterDbNames("testCluster");
+ ds.getClusterDbNames("testCluster");
minTimes = 0;
result = Lists.newArrayList("testCluster:testDb");
- catalog.getClusterDbNames("");
+ ds.getClusterDbNames("");
minTimes = 0;
result = Lists.newArrayList("");
+ }
+ };
+
+ // mock catalog.
+ catalog = Deencapsulation.newInstance(Catalog.class);
+ new Expectations(catalog) {
+ {
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+
+ catalog.getCurrentDataSource();
+ minTimes = 0;
+ result = ds;
catalog.getAuth();
minTimes = 0;
diff --git a/fe/fe-core/src/test/java/org/apache/doris/task/LoadEtlTaskTest.java b/fe/fe-core/src/test/java/org/apache/doris/task/LoadEtlTaskTest.java
index 4380eaae9a..6d80ecf279 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/task/LoadEtlTaskTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/task/LoadEtlTaskTest.java
@@ -26,6 +26,7 @@ import org.apache.doris.catalog.Partition;
import org.apache.doris.catalog.Tablet;
import org.apache.doris.common.Config;
import org.apache.doris.common.util.UnitTestUtil;
+import org.apache.doris.datasource.InternalDataSource;
import org.apache.doris.load.DppScheduler;
import org.apache.doris.load.EtlStatus;
import org.apache.doris.load.Load;
@@ -64,6 +65,8 @@ public class LoadEtlTaskTest {
@Mocked
private Catalog catalog;
@Mocked
+ private InternalDataSource ds;
+ @Mocked
private EditLog editLog;
@Mocked
private Load load;
@@ -87,13 +90,17 @@ public class LoadEtlTaskTest {
public void testRunEtlTask(@Mocked DppScheduler dppScheduler) throws Exception {
// mock catalog
db = UnitTestUtil.createDb(dbId, tableId, partitionId, indexId, tabletId, backendId, 1L);
- new Expectations(catalog) {
+ new Expectations(catalog, ds) {
{
- catalog.getDbNullable(dbId);
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+
+ ds.getDbNullable(dbId);
minTimes = 0;
result = db;
- catalog.getDbNullable(db.getFullName());
+ ds.getDbNullable(db.getFullName());
minTimes = 0;
result = db;
diff --git a/fe/fe-core/src/test/java/org/apache/doris/task/LoadPendingTaskTest.java b/fe/fe-core/src/test/java/org/apache/doris/task/LoadPendingTaskTest.java
index b12475e1a2..9d37333167 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/task/LoadPendingTaskTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/task/LoadPendingTaskTest.java
@@ -23,6 +23,7 @@ import org.apache.doris.catalog.OlapTable;
import org.apache.doris.catalog.Partition;
import org.apache.doris.common.Config;
import org.apache.doris.common.util.UnitTestUtil;
+import org.apache.doris.datasource.InternalDataSource;
import org.apache.doris.load.DppScheduler;
import org.apache.doris.load.EtlSubmitResult;
import org.apache.doris.load.Load;
@@ -59,6 +60,8 @@ public class LoadPendingTaskTest {
@Mocked
private Catalog catalog;
@Mocked
+ private InternalDataSource ds;
+ @Mocked
private EditLog editLog;
@Mocked
private Load load;
@@ -90,13 +93,17 @@ public class LoadPendingTaskTest {
globalTransactionMgr.addDatabaseTransactionMgr(db.getId());
// mock catalog
- new Expectations(catalog) {
+ new Expectations(catalog, ds) {
{
- catalog.getDbNullable(dbId);
+ catalog.getInternalDataSource();
+ minTimes = 0;
+ result = ds;
+
+ ds.getDbNullable(dbId);
minTimes = 0;
result = db;
- catalog.getDbNullable(db.getFullName());
+ ds.getDbNullable(db.getFullName());
minTimes = 0;
result = db;
diff --git a/fe/fe-core/src/test/java/org/apache/doris/transaction/DatabaseTransactionMgrTest.java b/fe/fe-core/src/test/java/org/apache/doris/transaction/DatabaseTransactionMgrTest.java
index 4935d69864..5edb6f3484 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/transaction/DatabaseTransactionMgrTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/transaction/DatabaseTransactionMgrTest.java
@@ -97,7 +97,8 @@ public class DatabaseTransactionMgrTest {
transTablets.add(tabletCommitInfo1);
transTablets.add(tabletCommitInfo2);
transTablets.add(tabletCommitInfo3);
- Table testTable1 = masterCatalog.getDbOrMetaException(CatalogTestUtil.testDbId1).getTableOrMetaException(CatalogTestUtil.testTableId1);
+ Table testTable1 = masterCatalog.getInternalDataSource().getDbOrMetaException(CatalogTestUtil.testDbId1)
+ .getTableOrMetaException(CatalogTestUtil.testTableId1);
masterTransMgr.commitTransaction(CatalogTestUtil.testDbId1, Lists.newArrayList(testTable1), transactionId1, transTablets);
masterTransMgr.finishTransaction(CatalogTestUtil.testDbId1, transactionId1, null);
labelToTxnId.put(CatalogTestUtil.testTxnLabel1, transactionId1);
diff --git a/fe/fe-core/src/test/java/org/apache/doris/transaction/GlobalTransactionMgrTest.java b/fe/fe-core/src/test/java/org/apache/doris/transaction/GlobalTransactionMgrTest.java
index eab20c6f93..f79d110e19 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/transaction/GlobalTransactionMgrTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/transaction/GlobalTransactionMgrTest.java
@@ -155,29 +155,30 @@ public class GlobalTransactionMgrTest {
@Test
public void testCommitTransaction1() throws UserException {
FakeCatalog.setCatalog(masterCatalog);
- long transactionId = masterTransMgr.beginTransaction(CatalogTestUtil.testDbId1, Lists.newArrayList(CatalogTestUtil.testTableId1),
- CatalogTestUtil.testTxnLabel1,
- transactionSource,
+ long transactionId = masterTransMgr.beginTransaction(CatalogTestUtil.testDbId1,
+ Lists.newArrayList(CatalogTestUtil.testTableId1), CatalogTestUtil.testTxnLabel1, transactionSource,
LoadJobSourceType.FRONTEND, Config.stream_load_default_timeout_second);
// commit a transaction
- TabletCommitInfo tabletCommitInfo1 = new TabletCommitInfo(CatalogTestUtil.testTabletId1,
- CatalogTestUtil.testBackendId1);
- TabletCommitInfo tabletCommitInfo2 = new TabletCommitInfo(CatalogTestUtil.testTabletId1,
- CatalogTestUtil.testBackendId2);
- TabletCommitInfo tabletCommitInfo3 = new TabletCommitInfo(CatalogTestUtil.testTabletId1,
- CatalogTestUtil.testBackendId3);
+ TabletCommitInfo tabletCommitInfo1 =
+ new TabletCommitInfo(CatalogTestUtil.testTabletId1, CatalogTestUtil.testBackendId1);
+ TabletCommitInfo tabletCommitInfo2 =
+ new TabletCommitInfo(CatalogTestUtil.testTabletId1, CatalogTestUtil.testBackendId2);
+ TabletCommitInfo tabletCommitInfo3 =
+ new TabletCommitInfo(CatalogTestUtil.testTabletId1, CatalogTestUtil.testBackendId3);
List<TabletCommitInfo> transTablets = Lists.newArrayList();
transTablets.add(tabletCommitInfo1);
transTablets.add(tabletCommitInfo2);
transTablets.add(tabletCommitInfo3);
- Table testTable1 = masterCatalog.getDbOrMetaException(CatalogTestUtil.testDbId1).getTableOrMetaException(CatalogTestUtil.testTableId1);
- masterTransMgr.commitTransaction(CatalogTestUtil.testDbId1, Lists.newArrayList(testTable1), transactionId, transTablets);
+ Table testTable1 = masterCatalog.getInternalDataSource().getDbOrMetaException(CatalogTestUtil.testDbId1)
+ .getTableOrMetaException(CatalogTestUtil.testTableId1);
+ masterTransMgr.commitTransaction(CatalogTestUtil.testDbId1, Lists.newArrayList(testTable1), transactionId,
+ transTablets);
TransactionState transactionState = fakeEditLog.getTransaction(transactionId);
// check status is committed
Assert.assertEquals(TransactionStatus.COMMITTED, transactionState.getTransactionStatus());
// check replica version
- Partition testPartition = masterCatalog.getDbOrMetaException(CatalogTestUtil.testDbId1).getTableOrMetaException(CatalogTestUtil.testTableId1)
- .getPartition(CatalogTestUtil.testPartition1);
+ Partition testPartition = masterCatalog.getInternalDataSource().getDbOrMetaException(CatalogTestUtil.testDbId1)
+ .getTableOrMetaException(CatalogTestUtil.testTableId1).getPartition(CatalogTestUtil.testPartition1);
// check partition version
Assert.assertEquals(CatalogTestUtil.testStartVersion, testPartition.getVisibleVersion());
Assert.assertEquals(CatalogTestUtil.testStartVersion + 2, testPartition.getNextVersion());
@@ -209,7 +210,8 @@ public class GlobalTransactionMgrTest {
List<TabletCommitInfo> transTablets = Lists.newArrayList();
transTablets.add(tabletCommitInfo1);
transTablets.add(tabletCommitInfo2);
- Table testTable1 = masterCatalog.getDbOrMetaException(CatalogTestUtil.testDbId1).getTableOrMetaException(CatalogTestUtil.testTableId1);
+ Table testTable1 = masterCatalog.getInternalDataSource().getDbOrMetaException(CatalogTestUtil.testDbId1)
+ .getTableOrMetaException(CatalogTestUtil.testTableId1);
masterTransMgr.commitTransaction(CatalogTestUtil.testDbId1, Lists.newArrayList(testTable1), transactionId, transTablets);
// follower catalog replay the transaction
@@ -239,8 +241,8 @@ public class GlobalTransactionMgrTest {
Assert.assertEquals(TransactionStatus.PREPARE, transactionState.getTransactionStatus());
}
// check replica version
- Partition testPartition = masterCatalog.getDbOrMetaException(CatalogTestUtil.testDbId1).getTableOrMetaException(CatalogTestUtil.testTableId1)
- .getPartition(CatalogTestUtil.testPartition1);
+ Partition testPartition = masterCatalog.getInternalDataSource().getDbOrMetaException(CatalogTestUtil.testDbId1)
+ .getTableOrMetaException(CatalogTestUtil.testTableId1).getPartition(CatalogTestUtil.testPartition1);
// check partition version
Assert.assertEquals(CatalogTestUtil.testStartVersion, testPartition.getVisibleVersion());
Assert.assertEquals(CatalogTestUtil.testStartVersion + 2, testPartition.getNextVersion());
@@ -265,8 +267,8 @@ public class GlobalTransactionMgrTest {
// check status is commit
Assert.assertEquals(TransactionStatus.COMMITTED, transactionState.getTransactionStatus());
// check replica version
- testPartition = masterCatalog.getDbOrMetaException(CatalogTestUtil.testDbId1).getTableOrMetaException(CatalogTestUtil.testTableId1)
- .getPartition(CatalogTestUtil.testPartition1);
+ testPartition = masterCatalog.getInternalDataSource().getDbOrMetaException(CatalogTestUtil.testDbId1)
+ .getTableOrMetaException(CatalogTestUtil.testTableId1).getPartition(CatalogTestUtil.testPartition1);
// check partition version
Assert.assertEquals(CatalogTestUtil.testStartVersion, testPartition.getVisibleVersion());
Assert.assertEquals(CatalogTestUtil.testStartVersion + 3, testPartition.getNextVersion());
@@ -356,7 +358,8 @@ public class GlobalTransactionMgrTest {
routineLoadManager.addRoutineLoadJob(routineLoadJob, "db");
Deencapsulation.setField(masterTransMgr.getDatabaseTransactionMgr(CatalogTestUtil.testDbId1), "idToRunningTransactionState", idToTransactionState);
- Table testTable1 = masterCatalog.getDbOrMetaException(CatalogTestUtil.testDbId1).getTableOrMetaException(CatalogTestUtil.testTableId1);
+ Table testTable1 = masterCatalog.getInternalDataSource().getDbOrMetaException(CatalogTestUtil.testDbId1)
+ .getTableOrMetaException(CatalogTestUtil.testTableId1);
masterTransMgr.commitTransaction(1L, Lists.newArrayList(testTable1), 1L, transTablets, txnCommitAttachment);
RoutineLoadStatistic jobStatistic = Deencapsulation.getField(routineLoadJob, "jobStatistic");
@@ -426,7 +429,8 @@ public class GlobalTransactionMgrTest {
routineLoadManager.addRoutineLoadJob(routineLoadJob, "db");
Deencapsulation.setField(masterTransMgr.getDatabaseTransactionMgr(CatalogTestUtil.testDbId1), "idToRunningTransactionState", idToTransactionState);
- Table testTable1 = masterCatalog.getDbOrMetaException(CatalogTestUtil.testDbId1).getTableOrMetaException(CatalogTestUtil.testTableId1);
+ Table testTable1 = masterCatalog.getInternalDataSource().getDbOrMetaException(CatalogTestUtil.testDbId1)
+ .getTableOrMetaException(CatalogTestUtil.testTableId1);
masterTransMgr.commitTransaction(1L, Lists.newArrayList(testTable1), 1L, transTablets, txnCommitAttachment);
// current total rows and error rows will be reset after job pause, so here they should be 0.
@@ -457,7 +461,8 @@ public class GlobalTransactionMgrTest {
transTablets.add(tabletCommitInfo1);
transTablets.add(tabletCommitInfo2);
transTablets.add(tabletCommitInfo3);
- Table testTable1 = masterCatalog.getDbOrMetaException(CatalogTestUtil.testDbId1).getTableOrMetaException(CatalogTestUtil.testTableId1);
+ Table testTable1 = masterCatalog.getInternalDataSource().getDbOrMetaException(CatalogTestUtil.testDbId1)
+ .getTableOrMetaException(CatalogTestUtil.testTableId1);
masterTransMgr.commitTransaction(CatalogTestUtil.testDbId1, Lists.newArrayList(testTable1), transactionId, transTablets);
TransactionState transactionState = fakeEditLog.getTransaction(transactionId);
Assert.assertEquals(TransactionStatus.COMMITTED, transactionState.getTransactionStatus());
@@ -468,8 +473,8 @@ public class GlobalTransactionMgrTest {
transactionState = fakeEditLog.getTransaction(transactionId);
Assert.assertEquals(TransactionStatus.VISIBLE, transactionState.getTransactionStatus());
// check replica version
- Partition testPartition = masterCatalog.getDbOrMetaException(CatalogTestUtil.testDbId1).getTableOrMetaException(CatalogTestUtil.testTableId1)
- .getPartition(CatalogTestUtil.testPartition1);
+ Partition testPartition = masterCatalog.getInternalDataSource().getDbOrMetaException(CatalogTestUtil.testDbId1)
+ .getTableOrMetaException(CatalogTestUtil.testTableId1).getPartition(CatalogTestUtil.testPartition1);
// check partition version
Assert.assertEquals(CatalogTestUtil.testStartVersion + 1, testPartition.getVisibleVersion());
Assert.assertEquals(CatalogTestUtil.testStartVersion + 2, testPartition.getNextVersion());
@@ -491,8 +496,8 @@ public class GlobalTransactionMgrTest {
@Test
public void testFinishTransactionWithOneFailed() throws UserException {
TransactionState transactionState = null;
- Partition testPartition = masterCatalog.getDbOrMetaException(CatalogTestUtil.testDbId1).getTableOrMetaException(CatalogTestUtil.testTableId1)
- .getPartition(CatalogTestUtil.testPartition1);
+ Partition testPartition = masterCatalog.getInternalDataSource().getDbOrMetaException(CatalogTestUtil.testDbId1)
+ .getTableOrMetaException(CatalogTestUtil.testTableId1).getPartition(CatalogTestUtil.testPartition1);
Tablet tablet = testPartition.getIndex(CatalogTestUtil.testIndexId1).getTablet(CatalogTestUtil.testTabletId1);
FakeCatalog.setCatalog(masterCatalog);
long transactionId = masterTransMgr.beginTransaction(CatalogTestUtil.testDbId1, Lists.newArrayList(CatalogTestUtil.testTableId1),
@@ -507,7 +512,8 @@ public class GlobalTransactionMgrTest {
List<TabletCommitInfo> transTablets = Lists.newArrayList();
transTablets.add(tabletCommitInfo1);
transTablets.add(tabletCommitInfo2);
- Table testTable1 = masterCatalog.getDbOrMetaException(CatalogTestUtil.testDbId1).getTableOrMetaException(CatalogTestUtil.testTableId1);
+ Table testTable1 = masterCatalog.getInternalDataSource().getDbOrMetaException(CatalogTestUtil.testDbId1)
+ .getTableOrMetaException(CatalogTestUtil.testTableId1);
masterTransMgr.commitTransaction(CatalogTestUtil.testDbId1, Lists.newArrayList(testTable1), transactionId, transTablets);
// follower catalog replay the transaction
@@ -584,8 +590,8 @@ public class GlobalTransactionMgrTest {
// check status is commit
Assert.assertEquals(TransactionStatus.COMMITTED, transactionState.getTransactionStatus());
// check replica version
- testPartition = masterCatalog.getDbOrMetaException(CatalogTestUtil.testDbId1).getTableOrMetaException(CatalogTestUtil.testTableId1)
- .getPartition(CatalogTestUtil.testPartition1);
+ testPartition = masterCatalog.getInternalDataSource().getDbOrMetaException(CatalogTestUtil.testDbId1)
+ .getTableOrMetaException(CatalogTestUtil.testTableId1).getPartition(CatalogTestUtil.testPartition1);
// check partition version
Assert.assertEquals(CatalogTestUtil.testStartVersion + 1, testPartition.getVisibleVersion());
Assert.assertEquals(CatalogTestUtil.testStartVersion + 3, testPartition.getNextVersion());
diff --git a/fe/fe-core/src/test/java/org/apache/doris/utframe/AnotherDemoTest.java b/fe/fe-core/src/test/java/org/apache/doris/utframe/AnotherDemoTest.java
index 5629e695f9..3b94721e16 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/utframe/AnotherDemoTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/utframe/AnotherDemoTest.java
@@ -97,13 +97,13 @@ public class AnotherDemoTest {
String createDbStmtStr = "create database db1;";
CreateDbStmt createDbStmt = (CreateDbStmt) UtFrameUtils.parseAndAnalyzeStmt(createDbStmtStr, ctx);
Catalog.getCurrentCatalog().createDb(createDbStmt);
- System.out.println(Catalog.getCurrentCatalog().getDbNames());
+ System.out.println(Catalog.getCurrentInternalCatalog().getDbNames());
// 3. create table tbl1
String createTblStmtStr = "create table db1.tbl1(k1 int) distributed by hash(k1) buckets 3 properties('replication_num' = '1');";
CreateTableStmt createTableStmt = (CreateTableStmt) UtFrameUtils.parseAndAnalyzeStmt(createTblStmtStr, ctx);
Catalog.getCurrentCatalog().createTable(createTableStmt);
// 4. get and test the created db and table
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException("default_cluster:db1");
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException("default_cluster:db1");
OlapTable tbl = (OlapTable) db.getTableOrMetaException("tbl1", Table.TableType.OLAP);
tbl.readLock();
try {
diff --git a/fe/fe-core/src/test/java/org/apache/doris/utframe/DemoMultiBackendsTest.java b/fe/fe-core/src/test/java/org/apache/doris/utframe/DemoMultiBackendsTest.java
index 4c91afab33..e6480a8e8a 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/utframe/DemoMultiBackendsTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/utframe/DemoMultiBackendsTest.java
@@ -129,7 +129,7 @@ public class DemoMultiBackendsTest {
String createDbStmtStr = "create database db1;";
CreateDbStmt createDbStmt = (CreateDbStmt) UtFrameUtils.parseAndAnalyzeStmt(createDbStmtStr, ctx);
Catalog.getCurrentCatalog().createDb(createDbStmt);
- System.out.println(Catalog.getCurrentCatalog().getDbNames());
+ System.out.println(Catalog.getCurrentInternalCatalog().getDbNames());
// 3. create table tbl1
String createTblStmtStr = "create table db1.tbl1(k1 int) distributed by hash(k1) buckets 3"
+ " properties('replication_num' = '3',"
@@ -140,7 +140,7 @@ public class DemoMultiBackendsTest {
updateReplicaPathHash();
// 4. get and test the created db and table
- Database db = Catalog.getCurrentCatalog().getDbNullable("default_cluster:db1");
+ Database db = Catalog.getCurrentInternalCatalog().getDbNullable("default_cluster:db1");
Assert.assertNotNull(db);
OlapTable tbl = (OlapTable) db.getTableNullable("tbl1");
tbl.readLock();
diff --git a/fe/fe-core/src/test/java/org/apache/doris/utframe/DemoTest.java b/fe/fe-core/src/test/java/org/apache/doris/utframe/DemoTest.java
index 9f3e3453b3..6fea54c5f3 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/utframe/DemoTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/utframe/DemoTest.java
@@ -59,13 +59,13 @@ public class DemoTest extends TestWithFeService {
// 2. create database db1
createDatabase("db1");
- System.out.println(Catalog.getCurrentCatalog().getDbNames());
+ System.out.println(Catalog.getCurrentInternalCatalog().getDbNames());
// 3. create table tbl1
createTable("create table db1.tbl1(k1 int) distributed by hash(k1) buckets 3 properties('replication_num' = '1');");
// 4. get and test the created db and table
- Database db = Catalog.getCurrentCatalog().getDbOrMetaException("default_cluster:db1");
+ Database db = Catalog.getCurrentInternalCatalog().getDbOrMetaException("default_cluster:db1");
OlapTable tbl = (OlapTable) db.getTableOrMetaException("tbl1", Table.TableType.OLAP);
tbl.readLock();
try {
diff --git a/gensrc/thrift/FrontendService.thrift b/gensrc/thrift/FrontendService.thrift
index ae3018d8a4..b2ef1a1143 100644
--- a/gensrc/thrift/FrontendService.thrift
+++ b/gensrc/thrift/FrontendService.thrift
@@ -289,8 +289,8 @@ struct TGetDbsParams {
// getDbNames returns a list of database names and catalog names
struct TGetDbsResult {
- 1: list<string> dbs
- 2: list<string> catalogs
+ 1: optional list<string> dbs
+ 2: optional list<string> catalogs
}
// Arguments to getTableNames, which returns a list of tables that match an
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org