From 08ba881664ca97ce09c0ba480e1cb002b3ab932e Mon Sep 17 00:00:00 2001 From: morrySnow <101034200+morrySnow@users.noreply.github.com> Date: Wed, 21 Aug 2024 15:05:52 +0800 Subject: [PATCH] [fix](mtmv) mtmv getPlanBySql should not reuse ctx's StatementContext (#39690) pick from master #39690 --- .../main/java/org/apache/doris/mtmv/MTMVPlanUtil.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/mtmv/MTMVPlanUtil.java b/fe/fe-core/src/main/java/org/apache/doris/mtmv/MTMVPlanUtil.java index cf80e58eb7e563..88c203238396bf 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/mtmv/MTMVPlanUtil.java +++ b/fe/fe-core/src/main/java/org/apache/doris/mtmv/MTMVPlanUtil.java @@ -28,6 +28,7 @@ import org.apache.doris.datasource.CatalogIf; import org.apache.doris.mysql.privilege.Auth; import org.apache.doris.nereids.NereidsPlanner; +import org.apache.doris.nereids.StatementContext; import org.apache.doris.nereids.exceptions.ParseException; import org.apache.doris.nereids.glue.LogicalPlanAdapter; import org.apache.doris.nereids.parser.NereidsParser; @@ -152,7 +153,13 @@ private static Plan getPlanBySql(String querySql, ConnectContext ctx) { } StatementBase parsedStmt = statements.get(0); LogicalPlan logicalPlan = ((LogicalPlanAdapter) parsedStmt).getLogicalPlan(); - NereidsPlanner planner = new NereidsPlanner(ctx.getStatementContext()); - return planner.planWithLock(logicalPlan, PhysicalProperties.ANY, ExplainLevel.NONE); + StatementContext original = ctx.getStatementContext(); + ctx.setStatementContext(new StatementContext()); + try { + NereidsPlanner planner = new NereidsPlanner(ctx.getStatementContext()); + return planner.planWithLock(logicalPlan, PhysicalProperties.ANY, ExplainLevel.NONE); + } finally { + ctx.setStatementContext(original); + } } }