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 de3acfc8e8..296cac55bc 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 @@ -665,11 +665,19 @@ public class ConnectProcessor { int idx = request.isSetStmtIdx() ? request.getStmtIdx() : 0; executor = new StmtExecutor(ctx, new OriginStatement(request.getSql(), idx), true); ctx.setExecutor(executor); + // Set default catalog only if the catalog exists. if (request.isSetDefaultCatalog()) { - ctx.getEnv().changeCatalog(ctx, request.getDefaultCatalog()); - } - if (request.isSetDefaultDatabase() && !request.getDefaultDatabase().isEmpty()) { - ctx.getEnv().changeDb(ctx, request.getDefaultDatabase()); + CatalogIf catalog = ctx.getEnv().getCatalogMgr().getCatalog(request.getDefaultCatalog()); + if (catalog != null) { + ctx.getEnv().changeCatalog(ctx, request.getDefaultCatalog()); + // Set default db only when the default catalog is set and the dbname exists in default catalog. + if (request.isSetDefaultDatabase()) { + DatabaseIf db = ctx.getCurrentCatalog().getDbNullable(request.getDefaultDatabase()); + if (db != null) { + ctx.getEnv().changeDb(ctx, request.getDefaultDatabase()); + } + } + } } TUniqueId queryId; // This query id will be set in ctx if (request.isSetQueryId()) {