This is an automated email from the ASF dual-hosted git repository.
jackie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git
The following commit(s) were added to refs/heads/master by this push:
new 834909e2bd overload divide function to allow a default value when
denominator==0 (#9196)
834909e2bd is described below
commit 834909e2bd8570205e9de7421fc3f043fa377ecb
Author: wli-git <[email protected]>
AuthorDate: Fri Aug 12 14:53:36 2022 -0700
overload divide function to allow a default value when denominator==0
(#9196)
---
.../org/apache/pinot/common/function/scalar/ArithmeticFunctions.java | 5 +++++
.../org/apache/pinot/core/data/function/ArithmeticFunctionsTest.java | 5 +++++
2 files changed, 10 insertions(+)
diff --git
a/pinot-common/src/main/java/org/apache/pinot/common/function/scalar/ArithmeticFunctions.java
b/pinot-common/src/main/java/org/apache/pinot/common/function/scalar/ArithmeticFunctions.java
index 36d7511fd5..e6d73b0cc4 100644
---
a/pinot-common/src/main/java/org/apache/pinot/common/function/scalar/ArithmeticFunctions.java
+++
b/pinot-common/src/main/java/org/apache/pinot/common/function/scalar/ArithmeticFunctions.java
@@ -50,6 +50,11 @@ public class ArithmeticFunctions {
return a / b;
}
+ @ScalarFunction
+ public static double divide(double a, double b, double defaultValue) {
+ return (b == 0) ? defaultValue : a / b;
+ }
+
@ScalarFunction
public static double mod(double a, double b) {
return a % b;
diff --git
a/pinot-core/src/test/java/org/apache/pinot/core/data/function/ArithmeticFunctionsTest.java
b/pinot-core/src/test/java/org/apache/pinot/core/data/function/ArithmeticFunctionsTest.java
index fb46ecedff..404444933e 100644
---
a/pinot-core/src/test/java/org/apache/pinot/core/data/function/ArithmeticFunctionsTest.java
+++
b/pinot-core/src/test/java/org/apache/pinot/core/data/function/ArithmeticFunctionsTest.java
@@ -96,6 +96,11 @@ public class ArithmeticFunctionsTest {
inputs.add(new Object[]{"sign(a)", Lists.newArrayList("a"), row6, 1.0});
inputs.add(new Object[]{"sign(a)", Lists.newArrayList("a"), row7, -1.0});
+ GenericRow row8 = new GenericRow();
+ row8.putValue("a", 9.5);
+ row8.putValue("b", 0);
+ inputs.add(new Object[]{"divide(a, b, 0)", Lists.newArrayList("a", "b"),
row8, 0.0});
+
return inputs.toArray(new Object[0][]);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]