This repository has been archived by the owner on Aug 2, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 186
Support mathematical functions ceil/ceiling, exp, floor, ln, log #540
Merged
chloe-zh
merged 16 commits into
opendistro-for-elasticsearch:develop
from
chloe-zh:func-math
Jul 12, 2020
Merged
Support mathematical functions ceil/ceiling, exp, floor, ln, log #540
chloe-zh
merged 16 commits into
opendistro-for-elasticsearch:develop
from
chloe-zh:func-math
Jul 12, 2020
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
dai-chen
reviewed
Jun 30, 2020
core/src/main/java/com/amazon/opendistroforelasticsearch/sql/expression/DSL.java
Outdated
Show resolved
Hide resolved
...c/main/java/com/amazon/opendistroforelasticsearch/sql/expression/operator/OperatorUtils.java
Show resolved
Hide resolved
...mazon/opendistroforelasticsearch/sql/expression/operator/arthmetic/MathematicalFunction.java
Outdated
Show resolved
Hide resolved
...test/src/test/java/com/amazon/opendistroforelasticsearch/sql/ppl/MathematicalFunctionIT.java
Show resolved
Hide resolved
Recently I found the function name has to be lowercase otherwise not supported function exception is thrown. Could you check if we can do a quick fix here or a separate PR is needed? |
# Conflicts: # core/src/test/java/com/amazon/opendistroforelasticsearch/sql/expression/ExpressionTestBase.java
# Conflicts: # core/src/main/java/com/amazon/opendistroforelasticsearch/sql/expression/DSL.java # core/src/main/java/com/amazon/opendistroforelasticsearch/sql/expression/operator/arthmetic/UnaryFunction.java # core/src/test/java/com/amazon/opendistroforelasticsearch/sql/config/TestConfig.java # core/src/test/java/com/amazon/opendistroforelasticsearch/sql/expression/operator/arthmetic/UnaryFunctionTest.java
dai-chen
approved these changes
Jul 10, 2020
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Thanks for the changes!
integ-test/src/test/java/com/amazon/opendistroforelasticsearch/sql/util/MatcherUtils.java
Outdated
Show resolved
Hide resolved
penghuo
approved these changes
Jul 11, 2020
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the change!
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue #, if available:
Description of changes:
Implementation of function expressions is referred to MySQL mathematical functions as the requirement and standard.
Mathematical functions in core will be separated in a couple of pull requests. Functions in this pull request include:
ceil/ceiling
usage: maps a number to the least integer greater than or equal to itself
argument type: integer/long/float/double
return type: integer
exp
usage: maps a number to its natural exponential function
argument type: integer/long/float/double
return type: double
floor
usage: maps a number to the greatest integer less than or equal to itself
argument type: integer/long/float/double
return type: integer
ln
usage: maps a number to its natural logarithm
argument type: integer/long/float/double
return type: double
log
usage: log(b, x) maps numbers b, x to their logarithm where b is the base, log(x) maps x to the natural logarithm, which is equivalent to ln(x)
argument type: integer/long/float/double
return type: double
log10
usage: maps a number to its 10-base logarithm
argument type: integer/long/float/double
return type: double
log2
usage: maps a number to its 2-base logarithm
argument type: integer/long/float/double
return type: double
Reference
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.