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 6eaeb559b7343c..fcd0d25a130320 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 @@ -725,6 +725,13 @@ private void executeByNereids(TUniqueId queryId) throws Exception { return; } } + + // Query following createting table would throw table not exist error. + // For example. + // t1: client issues create table to master fe + // t2: client issues query sql to observer fe, the query would fail due to not exist table in plan phase. + // t3: observer fe receive editlog creating the table from the master fe + syncJournalIfNeeded(); try { ((Command) logicalPlan).run(context, this); } catch (MustFallbackException e) { @@ -759,6 +766,13 @@ private void executeByNereids(TUniqueId queryId) throws Exception { } else { context.getState().setIsQuery(true); // create plan + // Query following createting table would throw table not exist error. + // For example. + // t1: client issues create table to master fe + // t2: client issues query sql to observer fe, the query would fail due to not exist table in + // plan phase. + // t3: observer fe receive editlog creating the table from the master fe + syncJournalIfNeeded(); planner = new NereidsPlanner(statementContext); if (context.getSessionVariable().isEnableMaterializedViewRewrite()) { planner.addHook(InitMaterializationContextHook.INSTANCE); @@ -805,7 +819,6 @@ public void finalizeQuery() { private void handleQueryWithRetry(TUniqueId queryId) throws Exception { // queue query here - syncJournalIfNeeded(); int retryTime = Config.max_query_retry_time; for (int i = 0; i <= retryTime; i++) { try { @@ -955,6 +968,13 @@ public void executeByLegacy(TUniqueId queryId) throws Exception { } } } else { + // Query following createting table would throw table not exist error. + // For example. + // t1: client issues create table to master fe + // t2: client issues query sql to observer fe, the query would fail due to not exist table + // in plan phase. + // t3: observer fe receive editlog creating the table from the master fe + syncJournalIfNeeded(); analyzer = new Analyzer(context.getEnv(), context); parsedStmt.analyze(analyzer); parsedStmt.checkPriv();