-
Type:
Task
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Query Execution
-
Fully Compatible
-
QE 2024-11-25, QE 2024-12-09, QE 2024-12-23, QE 2025-01-06, QE 2025-01-20
-
None
-
0
-
None
-
None
-
None
-
None
-
None
-
None
Create a new header src/mongo/db/exec/expression/evaluate.h and define a namespace mongo::exec::expression with a set of functions
Value evaluate(const ExpressionAdd& expr, const Document& root, Variables* variables)
one for each
- ExpressionAdd
- ExpressionConstant
- ExpressionDivide
- ExpressionMod
- ExpressionMultiply
- ExpressionLog
- ExpressionPow
- ExpressionRandom
- ExpressionRange
- ExpressionSubtract
- ExpressionRound
- ExpressionTrunc
- ExpressionIsNumber
- ExpressionConvert
- ExpressionAbs
- ExpressionCeil
- ExpressionExp
- ExpressionFloor
- ExpressionLn
- ExpressionLog10
- ExpressionSqrt
- ExpressionBitNot
- ExpressionArcTangent2
- ExpressionDegreesToRadians
- ExpressionRadiansToDegrees
- ExpressionCosine
- ExpressionSine
- ExpressionTangent
- ExpressionArcCosine
- ExpressionArcSine
- ExpressionHyperbolicArcTangent
- ExpressionHyperbolicArcCosine
- ExpressionArcTangent
- ExpressionHyperbolicArcSine
- ExpressionHyperbolicCosine
- ExpressionHyperbolicSine
- ExpressionHyperbolicTangent
The body of the functions will be in a src/mongo/db/exec/expression/evaluate_math.cpp and will be taken from the evaluate() method, and the evaluate() method will be changed so that it calls the new method.
- has to be done before
-
SERVER-97130 Create walker for Expression-based hierarchies
-
- Closed
-