[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