Skip to content

Commit 6ef778d

Browse files
More thorough renaming of FunctionLikeConstant and FunctionWithCachedValue to ConstantFunction.
Signed-off-by: Yury-Fridlyand <yuryf@bitquilltech.com>
1 parent 4008c75 commit 6ef778d

12 files changed

Lines changed: 60 additions & 67 deletions

File tree

core/src/main/java/org/opensearch/sql/analysis/AnalysisContext.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public class AnalysisContext {
3232
* For example, `now` function should the same value during processing a query.
3333
*/
3434
@Getter
35-
private final Map<String, Expression> cachedFunctionValues;
35+
private final Map<String, Expression> constantFunctionValues;
3636

3737
public AnalysisContext() {
3838
this(new TypeEnvironment(null));
@@ -45,7 +45,7 @@ public AnalysisContext() {
4545
public AnalysisContext(TypeEnvironment environment) {
4646
this.environment = environment;
4747
this.namedParseExpressions = new ArrayList<>();
48-
this.cachedFunctionValues = new HashMap<>();
48+
this.constantFunctionValues = new HashMap<>();
4949
}
5050

5151
/**

core/src/main/java/org/opensearch/sql/analysis/ExpressionAnalyzer.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@
2424
import org.opensearch.sql.ast.expression.Case;
2525
import org.opensearch.sql.ast.expression.Cast;
2626
import org.opensearch.sql.ast.expression.Compare;
27+
import org.opensearch.sql.ast.expression.ConstantFunction;
2728
import org.opensearch.sql.ast.expression.EqualTo;
2829
import org.opensearch.sql.ast.expression.Field;
2930
import org.opensearch.sql.ast.expression.Function;
30-
import org.opensearch.sql.ast.expression.FunctionWithCachedValue;
3131
import org.opensearch.sql.ast.expression.HighlightFunction;
3232
import org.opensearch.sql.ast.expression.In;
3333
import org.opensearch.sql.ast.expression.Interval;
@@ -171,16 +171,15 @@ public Expression visitRelevanceFieldList(RelevanceFieldList node, AnalysisConte
171171
}
172172

173173
@Override
174-
public Expression visitFunctionWithCachedValue(FunctionWithCachedValue node,
175-
AnalysisContext context) {
174+
public Expression visitConstantFunction(ConstantFunction node, AnalysisContext context) {
176175
var valueName = node.getFuncName();
177-
if (context.getCachedFunctionValues().containsKey(valueName)) {
178-
return context.getCachedFunctionValues().get(valueName);
176+
if (context.getConstantFunctionValues().containsKey(valueName)) {
177+
return context.getConstantFunctionValues().get(valueName);
179178
}
180179

181180
var value = visitFunction(node, context);
182181
value = DSL.literal(value.valueOf(null));
183-
context.getCachedFunctionValues().put(valueName, value);
182+
context.getConstantFunctionValues().put(valueName, value);
184183
return value;
185184
}
186185

core/src/main/java/org/opensearch/sql/ast/AbstractNodeVisitor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@
1515
import org.opensearch.sql.ast.expression.Case;
1616
import org.opensearch.sql.ast.expression.Cast;
1717
import org.opensearch.sql.ast.expression.Compare;
18+
import org.opensearch.sql.ast.expression.ConstantFunction;
1819
import org.opensearch.sql.ast.expression.EqualTo;
1920
import org.opensearch.sql.ast.expression.Field;
2021
import org.opensearch.sql.ast.expression.Function;
21-
import org.opensearch.sql.ast.expression.FunctionWithCachedValue;
2222
import org.opensearch.sql.ast.expression.HighlightFunction;
2323
import org.opensearch.sql.ast.expression.In;
2424
import org.opensearch.sql.ast.expression.Interval;
@@ -117,7 +117,7 @@ public T visitRelevanceFieldList(RelevanceFieldList node, C context) {
117117
return visitChildren(node, context);
118118
}
119119

120-
public T visitFunctionWithCachedValue(FunctionWithCachedValue node, C context) {
120+
public T visitConstantFunction(ConstantFunction node, C context) {
121121
return visitChildren(node, context);
122122
}
123123

core/src/main/java/org/opensearch/sql/ast/dsl/AstDSL.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@
1818
import org.opensearch.sql.ast.expression.Case;
1919
import org.opensearch.sql.ast.expression.Cast;
2020
import org.opensearch.sql.ast.expression.Compare;
21+
import org.opensearch.sql.ast.expression.ConstantFunction;
2122
import org.opensearch.sql.ast.expression.DataType;
2223
import org.opensearch.sql.ast.expression.EqualTo;
2324
import org.opensearch.sql.ast.expression.Field;
2425
import org.opensearch.sql.ast.expression.Function;
25-
import org.opensearch.sql.ast.expression.FunctionWithCachedValue;
2626
import org.opensearch.sql.ast.expression.HighlightFunction;
2727
import org.opensearch.sql.ast.expression.In;
2828
import org.opensearch.sql.ast.expression.Interval;
@@ -230,8 +230,8 @@ public static Function function(String funcName, UnresolvedExpression... funcArg
230230
return new Function(funcName, Arrays.asList(funcArgs));
231231
}
232232

233-
public static Function functionLikeConstant(String funcName, UnresolvedExpression... funcArgs) {
234-
return new FunctionWithCachedValue(funcName, Arrays.asList(funcArgs));
233+
public static Function constantFunction(String funcName, UnresolvedExpression... funcArgs) {
234+
return new ConstantFunction(funcName, Arrays.asList(funcArgs));
235235
}
236236

237237
/**

core/src/main/java/org/opensearch/sql/ast/expression/FunctionWithCachedValue.java renamed to core/src/main/java/org/opensearch/sql/ast/expression/ConstantFunction.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@
1515
* [1] Constant at execution time.
1616
*/
1717
@EqualsAndHashCode(callSuper = false)
18-
public class FunctionWithCachedValue extends Function {
18+
public class ConstantFunction extends Function {
1919

20-
public FunctionWithCachedValue(String funcName, List<UnresolvedExpression> funcArgs) {
20+
public ConstantFunction(String funcName, List<UnresolvedExpression> funcArgs) {
2121
super(funcName, funcArgs);
2222
}
2323

2424
@Override
2525
public <R, C> R accept(AbstractNodeVisitor<R, C> nodeVisitor, C context) {
26-
return nodeVisitor.visitFunctionWithCachedValue(this, context);
26+
return nodeVisitor.visitConstantFunction(this, context);
2727
}
2828
}

core/src/test/java/org/opensearch/sql/analysis/ExpressionAnalyzerTest.java

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,8 @@
3030
import java.util.LinkedHashMap;
3131
import java.util.List;
3232
import java.util.Map;
33-
import java.util.function.Function;
34-
import java.util.stream.Stream;
3533
import org.junit.jupiter.api.Test;
3634
import org.junit.jupiter.api.extension.ExtendWith;
37-
import org.junit.jupiter.params.ParameterizedTest;
38-
import org.junit.jupiter.params.provider.Arguments;
39-
import org.junit.jupiter.params.provider.MethodSource;
4035
import org.opensearch.sql.analysis.symbol.Namespace;
4136
import org.opensearch.sql.analysis.symbol.Symbol;
4237
import org.opensearch.sql.ast.dsl.AstDSL;
@@ -50,7 +45,6 @@
5045
import org.opensearch.sql.common.antlr.SyntaxCheckException;
5146
import org.opensearch.sql.data.model.ExprTupleValue;
5247
import org.opensearch.sql.data.model.ExprValueUtils;
53-
import org.opensearch.sql.data.type.ExprCoreType;
5448
import org.opensearch.sql.exception.SemanticCheckException;
5549
import org.opensearch.sql.expression.DSL;
5650
import org.opensearch.sql.expression.Expression;
@@ -549,10 +543,10 @@ public void match_phrase_prefix_all_params() {
549543
}
550544

551545
@Test
552-
public void functionLikeConstant_calculated_on_analyze() {
553-
// Actually, we can call any function as functionLikeConstant to be calculated on analyze stage
554-
assertTrue(analyze(AstDSL.functionLikeConstant("now")) instanceof LiteralExpression);
555-
assertTrue(analyze(AstDSL.functionLikeConstant("localtime")) instanceof LiteralExpression);
546+
public void constant_function_is_calculated_on_analyze() {
547+
// Actually, we can call any function as ConstantFunction to be calculated on analyze stage
548+
assertTrue(analyze(AstDSL.constantFunction("now")) instanceof LiteralExpression);
549+
assertTrue(analyze(AstDSL.constantFunction("localtime")) instanceof LiteralExpression);
556550
}
557551

558552
@Test
@@ -562,11 +556,11 @@ public void function_isnt_calculated_on_analyze() {
562556
}
563557

564558
@Test
565-
public void functionLikeConstant_returns_constant_cached_value() {
566-
var values = List.of(analyze(AstDSL.functionLikeConstant("now")),
567-
analyze(AstDSL.functionLikeConstant("now")), analyze(AstDSL.functionLikeConstant("now")));
559+
public void constant_function_returns_constant_cached_value() {
560+
var values = List.of(analyze(AstDSL.constantFunction("now")),
561+
analyze(AstDSL.constantFunction("now")), analyze(AstDSL.constantFunction("now")));
568562
assertTrue(values.stream().allMatch(v ->
569-
v.valueOf(null) == analyze(AstDSL.functionLikeConstant("now")).valueOf(null)));
563+
v.valueOf(null) == analyze(AstDSL.constantFunction("now")).valueOf(null)));
570564
}
571565

572566
@Test

ppl/src/main/antlr/OpenSearchPPLParser.g4

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -221,11 +221,11 @@ primaryExpression
221221
| dataTypeFunctionCall
222222
| fieldExpression
223223
| literalValue
224-
| functionWithCachedValue
224+
| constantFunction
225225
;
226226

227-
functionWithCachedValue
228-
: functionWithCachedValueName LT_PRTHS functionArgs? RT_PRTHS
227+
constantFunction
228+
: constantFunctionName LT_PRTHS functionArgs? RT_PRTHS
229229
;
230230

231231
booleanExpression
@@ -383,7 +383,7 @@ dateAndTimeFunctionBase
383383
| QUARTER | SECOND | SUBDATE | SYSDATE | TIME | TIME_TO_SEC| TIMESTAMP | TO_DAYS | WEEK | YEAR
384384
;
385385

386-
functionWithCachedValueName
386+
constantFunctionName
387387
: datetimeConstantLiteral
388388
| CURDATE | CURTIME | NOW
389389
;

ppl/src/main/java/org/opensearch/sql/ppl/parser/AstExpressionBuilder.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import static org.opensearch.sql.ppl.antlr.parser.OpenSearchPPLParser.BooleanLiteralContext;
1515
import static org.opensearch.sql.ppl.antlr.parser.OpenSearchPPLParser.BySpanClauseContext;
1616
import static org.opensearch.sql.ppl.antlr.parser.OpenSearchPPLParser.CompareExprContext;
17+
import static org.opensearch.sql.ppl.antlr.parser.OpenSearchPPLParser.ConstantFunctionContext;
1718
import static org.opensearch.sql.ppl.antlr.parser.OpenSearchPPLParser.ConvertedDataTypeContext;
1819
import static org.opensearch.sql.ppl.antlr.parser.OpenSearchPPLParser.CountAllFunctionCallContext;
1920
import static org.opensearch.sql.ppl.antlr.parser.OpenSearchPPLParser.DataTypeFunctionCallContext;
@@ -24,7 +25,6 @@
2425
import static org.opensearch.sql.ppl.antlr.parser.OpenSearchPPLParser.EvalFunctionCallContext;
2526
import static org.opensearch.sql.ppl.antlr.parser.OpenSearchPPLParser.FieldExpressionContext;
2627
import static org.opensearch.sql.ppl.antlr.parser.OpenSearchPPLParser.FunctionArgsContext;
27-
import static org.opensearch.sql.ppl.antlr.parser.OpenSearchPPLParser.FunctionWithCachedValueContext;
2828
import static org.opensearch.sql.ppl.antlr.parser.OpenSearchPPLParser.IdentsAsQualifiedNameContext;
2929
import static org.opensearch.sql.ppl.antlr.parser.OpenSearchPPLParser.IdentsAsWildcardQualifiedNameContext;
3030
import static org.opensearch.sql.ppl.antlr.parser.OpenSearchPPLParser.InExprContext;
@@ -62,10 +62,10 @@
6262
import org.opensearch.sql.ast.expression.Argument;
6363
import org.opensearch.sql.ast.expression.Cast;
6464
import org.opensearch.sql.ast.expression.Compare;
65+
import org.opensearch.sql.ast.expression.ConstantFunction;
6566
import org.opensearch.sql.ast.expression.DataType;
6667
import org.opensearch.sql.ast.expression.Field;
6768
import org.opensearch.sql.ast.expression.Function;
68-
import org.opensearch.sql.ast.expression.FunctionWithCachedValue;
6969
import org.opensearch.sql.ast.expression.In;
7070
import org.opensearch.sql.ast.expression.Interval;
7171
import org.opensearch.sql.ast.expression.IntervalUnit;
@@ -247,17 +247,17 @@ public UnresolvedExpression visitConvertedDataType(ConvertedDataTypeContext ctx)
247247

248248
@Override
249249
public UnresolvedExpression visitDatetimeConstantLiteral(DatetimeConstantLiteralContext ctx) {
250-
return visitFunctionWithCachedValue(ctx.getText(), null);
250+
return visitConstantFunction(ctx.getText(), null);
251251
}
252252

253-
public UnresolvedExpression visitFunctionWithCachedValue(FunctionWithCachedValueContext ctx) {
254-
return visitFunctionWithCachedValue(ctx.functionWithCachedValueName().getText(),
253+
public UnresolvedExpression visitConstantFunction(ConstantFunctionContext ctx) {
254+
return visitConstantFunction(ctx.constantFunctionName().getText(),
255255
ctx.functionArgs());
256256
}
257257

258-
private UnresolvedExpression visitFunctionWithCachedValue(String functionName,
259-
FunctionArgsContext args) {
260-
return new FunctionWithCachedValue(functionName,
258+
private UnresolvedExpression visitConstantFunction(String functionName,
259+
FunctionArgsContext args) {
260+
return new ConstantFunction(functionName,
261261
args == null
262262
? Collections.emptyList()
263263
: args.functionArg()

ppl/src/test/java/org/opensearch/sql/ppl/parser/AstNowLikeFunctionTest.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@
88

99
import static org.junit.Assert.assertEquals;
1010
import static org.opensearch.sql.ast.dsl.AstDSL.compare;
11+
import static org.opensearch.sql.ast.dsl.AstDSL.constantFunction;
1112
import static org.opensearch.sql.ast.dsl.AstDSL.eval;
1213
import static org.opensearch.sql.ast.dsl.AstDSL.field;
1314
import static org.opensearch.sql.ast.dsl.AstDSL.filter;
1415
import static org.opensearch.sql.ast.dsl.AstDSL.function;
15-
import static org.opensearch.sql.ast.dsl.AstDSL.functionLikeConstant;
1616
import static org.opensearch.sql.ast.dsl.AstDSL.intLiteral;
1717
import static org.opensearch.sql.ast.dsl.AstDSL.let;
1818
import static org.opensearch.sql.ast.dsl.AstDSL.relation;
@@ -34,14 +34,14 @@ public class AstNowLikeFunctionTest {
3434
* @param name Function name
3535
* @param hasFsp Whether function has fsp argument
3636
* @param hasShortcut Whether function has shortcut (call without `()`)
37-
* @param isFunctionLikeConst Whether function has constant value
37+
* @param isConstantFunction Whether function has constant value
3838
*/
3939
public AstNowLikeFunctionTest(String name, Boolean hasFsp, Boolean hasShortcut,
40-
Boolean isFunctionLikeConst) {
40+
Boolean isConstantFunction) {
4141
this.name = name;
4242
this.hasFsp = hasFsp;
4343
this.hasShortcut = hasShortcut;
44-
this.isFunctionLikeConst = isFunctionLikeConst;
44+
this.isConstantFunction = isConstantFunction;
4545
}
4646

4747
/**
@@ -66,7 +66,7 @@ public static Iterable<Object> functionNames() {
6666
private final String name;
6767
private final Boolean hasFsp;
6868
private final Boolean hasShortcut;
69-
private final Boolean isFunctionLikeConst;
69+
private final Boolean isConstantFunction;
7070

7171
@Test
7272
public void test_now_like_functions() {
@@ -76,19 +76,19 @@ public void test_now_like_functions() {
7676
relation("t"),
7777
let(
7878
field("r"),
79-
(isFunctionLikeConst ? functionLikeConstant(name) : function(name))
79+
(isConstantFunction ? constantFunction(name) : function(name))
8080
)
8181
));
8282

8383
assertEqual("search source=t | where a=" + call,
8484
filter(
8585
relation("t"),
8686
compare("=", field("a"),
87-
(isFunctionLikeConst ? functionLikeConstant(name) : function(name)))
87+
(isConstantFunction ? constantFunction(name) : function(name)))
8888
)
8989
);
9090
}
91-
// Unfortunately, only real functions (not functionLikeConstants) might have `fsp` now.
91+
// Unfortunately, only real functions (not ConstantFunction) might have `fsp` now.
9292
if (hasFsp) {
9393
assertEqual("search source=t | where a=" + name + "(0)",
9494
filter(

sql/src/main/antlr/OpenSearchSQLParser.g4

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -307,11 +307,11 @@ functionCall
307307
| aggregateFunction (orderByClause)? filterClause #filteredAggregationFunctionCall
308308
| relevanceFunction #relevanceFunctionCall
309309
| highlightFunction #highlightFunctionCall
310-
| functionWithCachedValue #functionLikeConstantCall
310+
| constantFunction #constantFunctionCall
311311
;
312312

313-
functionWithCachedValue
314-
: functionWithCachedValueName LR_BRACKET functionArgs? RR_BRACKET
313+
constantFunction
314+
: constantFunctionName LR_BRACKET functionArgs? RR_BRACKET
315315
;
316316

317317
highlightFunction
@@ -400,7 +400,7 @@ dateTimeFunctionName
400400
;
401401

402402
// Functions which value could be cached in scope of a single query
403-
functionWithCachedValueName
403+
constantFunctionName
404404
: datetimeConstantLiteral
405405
| CURDATE | CURTIME | NOW
406406
;

0 commit comments

Comments
 (0)