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 |
|
38 |
1.1 |
|
46 |
1.1 |
|
48 |
1.1 |
|
50 |
1.1 |