From e6e97374879998b1308e0b2ce9715a342ad09b85 Mon Sep 17 00:00:00 2001 From: Sunil Ramchandra Pawar Date: Fri, 27 Feb 2026 17:45:22 +0530 Subject: [PATCH] Fix SemanticCheckException not thrown Signed-off-by: Sunil Ramchandra Pawar --- .../java/org/opensearch/sql/analysis/AnalysisContext.java | 7 +++++++ .../main/java/org/opensearch/sql/analysis/Analyzer.java | 2 +- .../java/org/opensearch/sql/analysis/AnalyzerTest.java | 3 --- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/org/opensearch/sql/analysis/AnalysisContext.java b/core/src/main/java/org/opensearch/sql/analysis/AnalysisContext.java index b27e435a6cf..2fc0ddbe1a3 100644 --- a/core/src/main/java/org/opensearch/sql/analysis/AnalysisContext.java +++ b/core/src/main/java/org/opensearch/sql/analysis/AnalysisContext.java @@ -71,4 +71,11 @@ public TypeEnvironment pop() { environment = curEnv.getParent(); return curEnv; } + + /** + * Push a new isolated environment without parent access. + */ + public void pushIsolated() { + environment = new TypeEnvironment(null); + } } diff --git a/core/src/main/java/org/opensearch/sql/analysis/Analyzer.java b/core/src/main/java/org/opensearch/sql/analysis/Analyzer.java index 2fdd8d6b843..e8a0d45f5c4 100644 --- a/core/src/main/java/org/opensearch/sql/analysis/Analyzer.java +++ b/core/src/main/java/org/opensearch/sql/analysis/Analyzer.java @@ -419,7 +419,7 @@ public LogicalPlan visitProject(Project node, AnalysisContext context) { child = processNestedAnalysis(node.getProjectList(), namedExpressions, child, context); - context.push(); + context.pushIsolated(); TypeEnvironment newEnv = context.peek(); namedExpressions.forEach( expr -> diff --git a/core/src/test/java/org/opensearch/sql/analysis/AnalyzerTest.java b/core/src/test/java/org/opensearch/sql/analysis/AnalyzerTest.java index 6324e7ee5bd..0fc9e026213 100644 --- a/core/src/test/java/org/opensearch/sql/analysis/AnalyzerTest.java +++ b/core/src/test/java/org/opensearch/sql/analysis/AnalyzerTest.java @@ -898,9 +898,6 @@ public void remove_source() { AstDSL.field("double_value"))); } - @Disabled( - "the project/remove command should shrink the type env. Should be enabled once " - + "https://github.com/opensearch-project/sql/issues/917 is resolved") @Test public void project_source_change_type_env() { SemanticCheckException exception =