RECALCULATE operator
The RECALCULATE operator creates an action that recalculates the stored values of a materialized property.
Syntax
RECALCULATE [CLASSES | NOCLASSES] propertyId(expr1, ..., exprN) [WHERE whereExpr]
Description
The RECALCULATE operator creates an action that recomputes the stored values of a materialized property from its definition, for every set of arguments where whereExpr is not NULL. The argument list may introduce new local parameters. Such parameters correspond to objects being iterated and are not parameters of the created action.
Parameters
-
propertyIdID of the property whose stored values are recalculated. The property must be materialized.
-
expr1, ..., exprNA list of expressions or typed parameters defining the arguments of the property. When using typed parameters, you can both reference already declared parameters and declare new local parameters. When using expressions, new local parameters cannot be added. The number of items in this list must equal the number of parameters of the property.
-
CLASSES | NOCLASSESKeyword limiting what is recalculated.
CLASSESrecalculates only the property's class data, not its values, whileNOCLASSESrecomputes only the values, assuming the class data is valid. If neither is specified, the values are recomputed (and the class data is refreshed when needed). -
whereExprExpression whose value is the condition under which the property is recalculated. If not specified, it is considered equal to
TRUE.
Examples
sum = GROUP SUM sum(OrderDetail od) BY order(od) MATERIALIZED;
// recompute all stored values of the materialized property
recalculateSum() {
RECALCULATE sum(Order o);
}
// recompute only the values for one customer's orders, assuming the class data is valid
recalculateCustomerSum(Customer c) {
RECALCULATE NOCLASSES sum(Order o) WHERE customer(o) = c;
}