Skip to content

Commit abd15ee

Browse files
committed
Use Locale.ROOT in toLowercase() when building AST
Signed-off-by: Yuanchun Shen <yuanchu@amazon.com>
1 parent ab6eed7 commit abd15ee

2 files changed

Lines changed: 16 additions & 14 deletions

File tree

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ public UnresolvedExpression visitTakeAggFunctionCall(
233233
/** Eval function. */
234234
@Override
235235
public UnresolvedExpression visitBooleanFunctionCall(BooleanFunctionCallContext ctx) {
236-
final String functionName = ctx.conditionFunctionName().getText().toLowerCase();
236+
final String functionName = ctx.conditionFunctionName().getText().toLowerCase(Locale.ROOT);
237237
return buildFunction(
238238
FUNCTION_NAME_MAPPING.getOrDefault(functionName, functionName),
239239
ctx.functionArgs().functionArg());
@@ -287,15 +287,15 @@ private Function buildFunction(
287287
public UnresolvedExpression visitSingleFieldRelevanceFunction(
288288
SingleFieldRelevanceFunctionContext ctx) {
289289
return new Function(
290-
ctx.singleFieldRelevanceFunctionName().getText().toLowerCase(),
290+
ctx.singleFieldRelevanceFunctionName().getText().toLowerCase(Locale.ROOT),
291291
singleFieldRelevanceArguments(ctx));
292292
}
293293

294294
@Override
295295
public UnresolvedExpression visitMultiFieldRelevanceFunction(
296296
MultiFieldRelevanceFunctionContext ctx) {
297297
return new Function(
298-
ctx.multiFieldRelevanceFunctionName().getText().toLowerCase(),
298+
ctx.multiFieldRelevanceFunctionName().getText().toLowerCase(Locale.ROOT),
299299
multiFieldRelevanceArguments(ctx));
300300
}
301301

@@ -506,7 +506,7 @@ private List<UnresolvedExpression> singleFieldRelevanceArguments(
506506
v ->
507507
builder.add(
508508
new UnresolvedArgument(
509-
v.relevanceArgName().getText().toLowerCase(),
509+
v.relevanceArgName().getText().toLowerCase(Locale.ROOT),
510510
new Literal(
511511
StringUtils.unquoteText(v.relevanceArgValue().getText()),
512512
DataType.STRING))));
@@ -534,7 +534,7 @@ private List<UnresolvedExpression> multiFieldRelevanceArguments(
534534
v ->
535535
builder.add(
536536
new UnresolvedArgument(
537-
v.relevanceArgName().getText().toLowerCase(),
537+
v.relevanceArgName().getText().toLowerCase(Locale.ROOT),
538538
new Literal(
539539
StringUtils.unquoteText(v.relevanceArgValue().getText()),
540540
DataType.STRING))));

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

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@
7272
import java.util.Collections;
7373
import java.util.HashMap;
7474
import java.util.List;
75+
import java.util.Locale;
7576
import java.util.Map;
7677
import java.util.Optional;
7778
import java.util.stream.Collectors;
@@ -152,7 +153,7 @@ public UnresolvedExpression visitHighlightFunctionCall(HighlightFunctionCallCont
152153
.forEach(
153154
v ->
154155
builder.put(
155-
v.highlightArgName().getText().toLowerCase(),
156+
v.highlightArgName().getText().toLowerCase(Locale.ROOT),
156157
new Literal(
157158
StringUtils.unquoteText(v.highlightArgValue().getText()),
158159
DataType.STRING)));
@@ -416,22 +417,23 @@ public UnresolvedExpression visitPercentileApproxFunctionCall(
416417
@Override
417418
public UnresolvedExpression visitNoFieldRelevanceFunction(NoFieldRelevanceFunctionContext ctx) {
418419
return new Function(
419-
ctx.noFieldRelevanceFunctionName().getText().toLowerCase(), noFieldRelevanceArguments(ctx));
420+
ctx.noFieldRelevanceFunctionName().getText().toLowerCase(Locale.ROOT),
421+
noFieldRelevanceArguments(ctx));
420422
}
421423

422424
@Override
423425
public UnresolvedExpression visitSingleFieldRelevanceFunction(
424426
SingleFieldRelevanceFunctionContext ctx) {
425427
return new Function(
426-
ctx.singleFieldRelevanceFunctionName().getText().toLowerCase(),
428+
ctx.singleFieldRelevanceFunctionName().getText().toLowerCase(Locale.ROOT),
427429
singleFieldRelevanceArguments(ctx));
428430
}
429431

430432
@Override
431433
public UnresolvedExpression visitAltSingleFieldRelevanceFunction(
432434
AltSingleFieldRelevanceFunctionContext ctx) {
433435
return new Function(
434-
ctx.altSyntaxFunctionName.getText().toLowerCase(),
436+
ctx.altSyntaxFunctionName.getText().toLowerCase(Locale.ROOT),
435437
altSingleFieldRelevanceFunctionArguments(ctx));
436438
}
437439

@@ -446,11 +448,11 @@ public UnresolvedExpression visitMultiFieldRelevanceFunction(
446448
|| funcName.equalsIgnoreCase(BuiltinFunctionName.MULTIMATCHQUERY.toString()))
447449
&& !ctx.getRuleContexts(AlternateMultiMatchQueryContext.class).isEmpty()) {
448450
return new Function(
449-
ctx.multiFieldRelevanceFunctionName().getText().toLowerCase(),
451+
ctx.multiFieldRelevanceFunctionName().getText().toLowerCase(Locale.ROOT),
450452
alternateMultiMatchArguments(ctx));
451453
} else {
452454
return new Function(
453-
ctx.multiFieldRelevanceFunctionName().getText().toLowerCase(),
455+
ctx.multiFieldRelevanceFunctionName().getText().toLowerCase(Locale.ROOT),
454456
multiFieldRelevanceArguments(ctx));
455457
}
456458
}
@@ -459,7 +461,7 @@ public UnresolvedExpression visitMultiFieldRelevanceFunction(
459461
public UnresolvedExpression visitAltMultiFieldRelevanceFunction(
460462
AltMultiFieldRelevanceFunctionContext ctx) {
461463
return new Function(
462-
ctx.altSyntaxFunctionName.getText().toLowerCase(),
464+
ctx.altSyntaxFunctionName.getText().toLowerCase(Locale.ROOT),
463465
altMultiFieldRelevanceFunctionArguments(ctx));
464466
}
465467

@@ -504,12 +506,12 @@ private void fillRelevanceArgs(
504506
builder.add(
505507
v.argName == null
506508
? new UnresolvedArgument(
507-
v.relevanceArgName().getText().toLowerCase(),
509+
v.relevanceArgName().getText().toLowerCase(Locale.ROOT),
508510
new Literal(
509511
StringUtils.unquoteText(v.relevanceArgValue().getText()),
510512
DataType.STRING))
511513
: new UnresolvedArgument(
512-
StringUtils.unquoteText(v.argName.getText()).toLowerCase(),
514+
StringUtils.unquoteText(v.argName.getText()).toLowerCase(Locale.ROOT),
513515
new Literal(
514516
StringUtils.unquoteText(v.argVal.getText()), DataType.STRING))));
515517
}

0 commit comments

Comments
 (0)