diff --git a/core/src/main/java/org/opensearch/sql/expression/function/PPLFuncImpTable.java b/core/src/main/java/org/opensearch/sql/expression/function/PPLFuncImpTable.java index fe364c7b7c4..30d7c055470 100644 --- a/core/src/main/java/org/opensearch/sql/expression/function/PPLFuncImpTable.java +++ b/core/src/main/java/org/opensearch/sql/expression/function/PPLFuncImpTable.java @@ -423,14 +423,10 @@ public void registerExternalOperator(BuiltinFunctionName functionName, SqlOperat functionName.name(), operator instanceof SqlUserDefinedFunction); CalciteFuncSignature signature = new CalciteFuncSignature(functionName.getName(), typeChecker); - externalFunctionRegistry.compute( + externalFunctionRegistry.put( functionName, - (name, existingList) -> { - List> list = - existingList == null ? new ArrayList<>() : new ArrayList<>(existingList); - list.add(Pair.of(signature, (builder, args) -> builder.makeCall(operator, args))); - return list; - }); + List.of( + Pair.of(signature, (FunctionImp) (builder, args) -> builder.makeCall(operator, args)))); } /** diff --git a/plugin/src/main/java/org/opensearch/sql/plugin/config/OpenSearchPluginModule.java b/plugin/src/main/java/org/opensearch/sql/plugin/config/OpenSearchPluginModule.java index 8027301073f..35504dd83c2 100644 --- a/plugin/src/main/java/org/opensearch/sql/plugin/config/OpenSearchPluginModule.java +++ b/plugin/src/main/java/org/opensearch/sql/plugin/config/OpenSearchPluginModule.java @@ -58,6 +58,7 @@ public StorageEngine storageEngine(OpenSearchClient client, Settings settings) { } @Provides + @Singleton public ExecutionEngine executionEngine( OpenSearchClient client, ExecutionProtector protector, PlanSerializer planSerializer) { return new OpenSearchExecutionEngine(client, protector, planSerializer);