[Mondrian] new property: mondrian.native.unsupported.alert

John V. Sichi jsichi at gmail.com
Mon Feb 5 13:14:08 EST 2007

Eigenchange 8663 adds a bit of framework for raising alerts when 
functions cannot be implemented as native, even though doing so would 
have been beneficial.  (There are cases where we know native evaluation 
wouldn't be a good idea; no alert for those.)

For now I've only done NonEmptyCrossJoin, since that's probably the most 
important to be done "wicked fast".  Documentation is in the usual 
places.  Default behavior is OFF (no alerting); you can choose WARN (log 
a warning using RolapUtil class logger) or ERROR (fail the query).

Using WARN gives you a way to find queries which need optimization by 
scanning the log; using ERROR provides a governance mechanism in cases 
where you never want non-native evaluation (also handy for testing).

In the ERROR case, it throws a new NativeEvaluationUnsupportedException. 
  I made this inherit from ResultLimitExceededException (kind of like 
QueryCanceledException, where the limit in question is the user's 
patience) so that it is guaranteed to propagate through to a UI which 
wants to catch it and display a non-internal error.


More information about the Mondrian mailing list