NamedExpressionAnalyzer.java

1
/*
2
 * Copyright OpenSearch Contributors
3
 * SPDX-License-Identifier: Apache-2.0
4
 */
5
6
7
package org.opensearch.sql.analysis;
8
9
import lombok.RequiredArgsConstructor;
10
import org.opensearch.sql.ast.AbstractNodeVisitor;
11
import org.opensearch.sql.ast.expression.Alias;
12
import org.opensearch.sql.ast.expression.QualifiedName;
13
import org.opensearch.sql.ast.expression.Span;
14
import org.opensearch.sql.ast.expression.UnresolvedExpression;
15
import org.opensearch.sql.expression.DSL;
16
import org.opensearch.sql.expression.NamedExpression;
17
import org.opensearch.sql.expression.span.SpanExpression;
18
19
/**
20
 * Analyze the Alias node in the {@link AnalysisContext} to construct the list of
21
 * {@link NamedExpression}.
22
 */
23
@RequiredArgsConstructor
24
public class NamedExpressionAnalyzer extends
25
    AbstractNodeVisitor<NamedExpression, AnalysisContext> {
26
  private final ExpressionAnalyzer expressionAnalyzer;
27
28
  /**
29
   * Analyze Select fields.
30
   */
31
  public NamedExpression analyze(UnresolvedExpression expression,
32
                                       AnalysisContext analysisContext) {
33 1 1. analyze : replaced return value with null for org/opensearch/sql/analysis/NamedExpressionAnalyzer::analyze → KILLED
    return expression.accept(this, analysisContext);
34
  }
35
36
  @Override
37
  public NamedExpression visitAlias(Alias node, AnalysisContext context) {
38 1 1. visitAlias : replaced return value with null for org/opensearch/sql/analysis/NamedExpressionAnalyzer::visitAlias → KILLED
    return DSL.named(
39
        unqualifiedNameIfFieldOnly(node, context),
40
        node.getDelegated().accept(expressionAnalyzer, context),
41
        node.getAlias());
42
  }
43
44
  private String unqualifiedNameIfFieldOnly(Alias node, AnalysisContext context) {
45
    UnresolvedExpression selectItem = node.getDelegated();
46 1 1. unqualifiedNameIfFieldOnly : negated conditional → KILLED
    if (selectItem instanceof QualifiedName) {
47
      QualifierAnalyzer qualifierAnalyzer = new QualifierAnalyzer(context);
48 1 1. unqualifiedNameIfFieldOnly : replaced return value with "" for org/opensearch/sql/analysis/NamedExpressionAnalyzer::unqualifiedNameIfFieldOnly → KILLED
      return qualifierAnalyzer.unqualified((QualifiedName) selectItem);
49
    }
50 1 1. unqualifiedNameIfFieldOnly : replaced return value with "" for org/opensearch/sql/analysis/NamedExpressionAnalyzer::unqualifiedNameIfFieldOnly → KILLED
    return node.getName();
51
  }
52
}

Mutations

33

1.1
Location : analyze
Killed by : org.opensearch.sql.analysis.NamedExpressionAnalyzerTest.[engine:junit-jupiter]/[class:org.opensearch.sql.analysis.NamedExpressionAnalyzerTest]/[method:visit_highlight()]
replaced return value with null for org/opensearch/sql/analysis/NamedExpressionAnalyzer::analyze → KILLED

38

1.1
Location : visitAlias
Killed by : org.opensearch.sql.analysis.NamedExpressionAnalyzerTest.[engine:junit-jupiter]/[class:org.opensearch.sql.analysis.NamedExpressionAnalyzerTest]/[method:visit_highlight()]
replaced return value with null for org/opensearch/sql/analysis/NamedExpressionAnalyzer::visitAlias → KILLED

46

1.1
Location : unqualifiedNameIfFieldOnly
Killed by : org.opensearch.sql.analysis.NamedExpressionAnalyzerTest.[engine:junit-jupiter]/[class:org.opensearch.sql.analysis.NamedExpressionAnalyzerTest]/[method:visit_highlight()]
negated conditional → KILLED

48

1.1
Location : unqualifiedNameIfFieldOnly
Killed by : org.opensearch.sql.analysis.NamedExpressionAnalyzerTest.[engine:junit-jupiter]/[class:org.opensearch.sql.analysis.NamedExpressionAnalyzerTest]/[method:visit_named_select_item()]
replaced return value with "" for org/opensearch/sql/analysis/NamedExpressionAnalyzer::unqualifiedNameIfFieldOnly → KILLED

50

1.1
Location : unqualifiedNameIfFieldOnly
Killed by : org.opensearch.sql.analysis.NamedExpressionAnalyzerTest.[engine:junit-jupiter]/[class:org.opensearch.sql.analysis.NamedExpressionAnalyzerTest]/[method:visit_highlight()]
replaced return value with "" for org/opensearch/sql/analysis/NamedExpressionAnalyzer::unqualifiedNameIfFieldOnly → KILLED

Active mutators

Tests examined


Report generated by PIT 1.9.0