mondrian.util
Class Bug

java.lang.Object
  extended by mondrian.util.Bug

public class Bug
extends Object

Holder for constants which indicate whether particular issues have been fixed. Reference one of those constants in your code, and it is clear which code can be enabled when the bug is fixed. Generally a constant is removed when its bug is fixed.

Cleanup items

The following is a list of cleanup items. They are not bugs per se: functionality is not wrong, just the organization of the code. If they were bugs, they would be in jira. It makes sense to have the list here, so that referenced class, method and variable names show up as uses in code searches.
Obsolete Id.Segment
Replace it by IdentifierSegment. Likewise Id.Quoting with Quoting. Should wait until after the mondrian 4 'big bang', because there are ~300 uses of Segment in the code.

Since:
Oct 11, 2006
Author:
jhyde

Field Summary
static boolean BugMondrian1001Fixed
          Whether bug MONDRIAN-1001, "Tests disabled due to property trigger issues" is fixed.
static boolean BugMondrian207Fixed
          Whether MONDRIAN-207, "IS EMPTY and IS NULL" is fixed.
static boolean BugMondrian229Fixed
          Whether MONDRIAN-229, "NON EMPTY when hierarchy's default member is not 'all'" is fixed.
static boolean BugMondrian313Fixed
          Whether bug MONDRIAN-313, "Predicate references RolapStar.Column when used in AggStar" is fixed.
static boolean BugMondrian314Fixed
          Whether bug MONDRIAN-314, "Predicate sometimes has null RolapStar.Column" is fixed.
static boolean BugMondrian328Fixed
          Whether bug MONDRIAN-328, "CrossJoin no empty optimizer eliminates calculated member" is fixed.
static boolean BugMondrian361Fixed
          Whether bug MONDRIAN-361, "Aggregate Tables not working with Shared Dimensions" is fixed.
static boolean BugMondrian441Fixed
          Whether bug MONDRIAN-441, "Parent-child hierarchies: <Join> used in dimension" is fixed.
static boolean BugMondrian446Fixed
          Whether bug MONDRIAN-446, "Make Native NonEmpty consistant with MSAS" is fixed.
static boolean BugMondrian485Fixed
          Whether bug MONDRIAN-485, "Member key treated as member name in WHERE" is fixed.
static boolean BugMondrian486Fixed
          Whether bug MONDRIAN-486, "HighCardinalityTest test cases disabled" is fixed.
static boolean BugMondrian495Fixed
          Whether bug MONDRIAN-495, "Table filter concept does not support dialects." is fixed.
static boolean BugMondrian503Fixed
          Whether bug MONDRIAN-503, "RolapResultTest disabled" is fixed.
static boolean BugMondrian555Fixed
          Whether bug MONDRIAN-555, "Compound slicer counts cells twice in certain cases" is fixed.
static boolean BugMondrian584Fixed
          Whether bug MONDRIAN-584, "Native evaluation returns enumerated members in the wrong order" is fixed.
static boolean BugMondrian641Fixed
          Whether bug MONDRIAN-641, "Large NON EMPTY result performs poorly with ResultStyle.ITERABLE"
static boolean BugMondrian648Fixed
          Whether bug MONDRIAN-648, "AS operator has lower precedence than required by MDX specification" is fixed.
static boolean BugMondrian687Fixed
          Whether bug MONDRIAN-687, "Format treats negative numbers differently than SSAS" is fixed.
static boolean BugMondrian747Fixed
          Whether bug bug MONDRIAN-747, "When joining a shared dimension into a cube at a level other than its leaf level, Mondrian gives wrong results" is fixed.
static boolean BugMondrian759Fixed
          Whether bug MONDRIAN-759, "use dynamic parameters and PreparedStatement for frequently executed SQL patterns" is fixed.
static boolean BugMondrian785Fixed
          Whether bug MONDRIAN-785, "Native evaluation does not respect ordering" is fixed.
static boolean BugSegregateRolapCubeMemberFixed
          Whether RolapCubeMember and RolapMember have been fully segregated; any piece of code should be working with one or the other, not both.
static boolean Checkin7641UseOptimizer
           
static boolean Ssas2005Compatible
          Whether Mondrian is 100% compatible with Microsoft Analysis Services 2005.
 
Constructor Summary
Bug()
           
 
Method Summary
static boolean avoidMemoryOverflow(Dialect dialect)
          Returns whether to avoid a test because the memory monitor may cause it to fail.
static boolean avoidSlowTestOnLucidDB(Dialect dialect)
          Returns true if we are running against Dialect.DatabaseProduct.LUCIDDB and we wish to avoid slow tests.
static boolean olap4jUpgrade(String reason)
          If you want to tag a piece of code in mondrian that needs to be changed when we upgrade to a future version of olap4j, reference this function.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

Ssas2005Compatible

public static final boolean Ssas2005Compatible
Whether Mondrian is 100% compatible with Microsoft Analysis Services 2005. We know that it is not, so this constant is false.

Use this field to flag test cases whose behavior is intentionally different from SSAS. If the behavior is unintentionally different and something we want to fix, log a bug, add a new BugMondrianXxxFixed constant to this class, and make the test case conditional on that constant instead.

See also the property MondrianProperties.SsasCompatibleNaming, which allows the user to choose certain behaviors which are compatible with SSAS 2005 but incompatible with Mondrian's previous behavior.

See Also:
Constant Field Values

BugMondrian229Fixed

public static final boolean BugMondrian229Fixed
Whether MONDRIAN-229, "NON EMPTY when hierarchy's default member is not 'all'" is fixed.

See Also:
Constant Field Values

Checkin7641UseOptimizer

public static final boolean Checkin7641UseOptimizer
See Also:
Constant Field Values

BugMondrian207Fixed

public static final boolean BugMondrian207Fixed
Whether MONDRIAN-207, "IS EMPTY and IS NULL" is fixed.

See Also:
Constant Field Values

BugMondrian446Fixed

public static final boolean BugMondrian446Fixed
Whether bug MONDRIAN-446, "Make Native NonEmpty consistant with MSAS" is fixed.

See Also:
Constant Field Values

BugMondrian313Fixed

public static final boolean BugMondrian313Fixed
Whether bug MONDRIAN-313, "Predicate references RolapStar.Column when used in AggStar" is fixed.

See Also:
Constant Field Values

BugMondrian314Fixed

public static final boolean BugMondrian314Fixed
Whether bug MONDRIAN-314, "Predicate sometimes has null RolapStar.Column" is fixed.

See Also:
Constant Field Values

BugMondrian328Fixed

public static final boolean BugMondrian328Fixed
Whether bug MONDRIAN-328, "CrossJoin no empty optimizer eliminates calculated member" is fixed.

See Also:
Constant Field Values

BugMondrian361Fixed

public static final boolean BugMondrian361Fixed
Whether bug MONDRIAN-361, "Aggregate Tables not working with Shared Dimensions" is fixed.

See Also:
Constant Field Values

BugMondrian441Fixed

public static final boolean BugMondrian441Fixed
Whether bug MONDRIAN-441, "Parent-child hierarchies: <Join> used in dimension" is fixed.

See Also:
Constant Field Values

BugMondrian485Fixed

public static final boolean BugMondrian485Fixed
Whether bug MONDRIAN-485, "Member key treated as member name in WHERE" is fixed. This bug is a placeholder for all support for keys in member names (e.g. "[Product].[Product Name].&12345").

See Also:
Constant Field Values

BugMondrian486Fixed

public static final boolean BugMondrian486Fixed
Whether bug MONDRIAN-486, "HighCardinalityTest test cases disabled" is fixed.

See Also:
Constant Field Values

BugMondrian495Fixed

public static final boolean BugMondrian495Fixed
Whether bug MONDRIAN-495, "Table filter concept does not support dialects." is fixed.

See Also:
Constant Field Values

BugMondrian503Fixed

public static final boolean BugMondrian503Fixed
Whether bug MONDRIAN-503, "RolapResultTest disabled" is fixed.

See Also:
Constant Field Values

BugMondrian555Fixed

public static final boolean BugMondrian555Fixed
Whether bug MONDRIAN-555, "Compound slicer counts cells twice in certain cases" is fixed. If a set in the slicer contains the same member more than once, or more generally, if the regions overlap, then mondrian counts the overlaps twice, whereas SSAS 2005 does not.

See Also:
Constant Field Values

BugMondrian584Fixed

public static final boolean BugMondrian584Fixed
Whether bug MONDRIAN-584, "Native evaluation returns enumerated members in the wrong order" is fixed. A query that includes { Gender.M, Gender.F } should return results where the Gender.M values are returned before the Gender.F values.

See Also:
Constant Field Values

BugMondrian641Fixed

public static final boolean BugMondrian641Fixed
Whether bug MONDRIAN-641, "Large NON EMPTY result performs poorly with ResultStyle.ITERABLE"

See Also:
Constant Field Values

BugMondrian648Fixed

public static final boolean BugMondrian648Fixed
Whether bug MONDRIAN-648, "AS operator has lower precedence than required by MDX specification" is fixed.

See Also:
Constant Field Values

BugMondrian687Fixed

public static final boolean BugMondrian687Fixed
Whether bug MONDRIAN-687, "Format treats negative numbers differently than SSAS" is fixed.

See Also:
Constant Field Values

BugMondrian747Fixed

public static final boolean BugMondrian747Fixed
Whether bug bug MONDRIAN-747, "When joining a shared dimension into a cube at a level other than its leaf level, Mondrian gives wrong results" is fixed.

See Also:
Constant Field Values

BugMondrian759Fixed

public static final boolean BugMondrian759Fixed
Whether bug MONDRIAN-759, "use dynamic parameters and PreparedStatement for frequently executed SQL patterns" is fixed.

See Also:
Constant Field Values

BugMondrian785Fixed

public static final boolean BugMondrian785Fixed
Whether bug MONDRIAN-785, "Native evaluation does not respect ordering" is fixed.

See Also:
Constant Field Values

BugMondrian1001Fixed

public static final boolean BugMondrian1001Fixed
Whether bug MONDRIAN-1001, "Tests disabled due to property trigger issues" is fixed.

See Also:
Constant Field Values

BugSegregateRolapCubeMemberFixed

public static final boolean BugSegregateRolapCubeMemberFixed
Whether RolapCubeMember and RolapMember have been fully segregated; any piece of code should be working with one or the other, not both.

See Also:
Constant Field Values
Constructor Detail

Bug

public Bug()
Method Detail

olap4jUpgrade

public static boolean olap4jUpgrade(String reason)
If you want to tag a piece of code in mondrian that needs to be changed when we upgrade to a future version of olap4j, reference this function. It will always return false.


avoidMemoryOverflow

public static boolean avoidMemoryOverflow(Dialect dialect)
Returns whether to avoid a test because the memory monitor may cause it to fail.

Some tests fail if memory monitor is switched on, and Access and Derby tend to use a lot of memory because they are embedded.

Parameters:
dialect - Dialect
Returns:
Whether to avoid a test

avoidSlowTestOnLucidDB

public static boolean avoidSlowTestOnLucidDB(Dialect dialect)
Returns true if we are running against Dialect.DatabaseProduct.LUCIDDB and we wish to avoid slow tests.

This is because some tests involving parent-child hierarchies are very slow. If we are running performance tests (indicated by the mondrian.test.PerforceTest logger set at Level.DEBUG or higher), we expect the suite to take a long time, so we enable the tests.

Fixing either MONDRIAN-759 or FRG-400, "rewrite statements containing literals to use internally-managed dynamic parameters instead" would solve the problem.

Returns:
Whether we are running LucidDB and we wish to avoid slow tests.

Get Mondrian at SourceForge.net. Fast, secure and free Open Source software downloads