Class RolapNativeCrossJoin


  • public class RolapNativeCrossJoin
    extends RolapNativeSet
    Creates a NativeEvaluator that evaluates NON EMPTY CrossJoin in SQL. The generated SQL will join the dimension tables with the fact table and return all combinations that have a corresponding row in the fact table. The current context (slicer) is used for filtering (WHERE clause in SQL). This very effective computes queries like
       SELECT ...
       NON EMTPY Crossjoin(
           [product].[name].members,
           [customer].[name].members) ON ROWS
       FROM [Sales]
       WHERE ([store].[store #14])
     
    where both, customer.name and product.name have many members, but the resulting crossjoin only has few.

    The implementation currently can not handle sets containting parent/child hierarchies, ragged hierarchies, calculated members and the ALL member. Otherwise all

    Since:
    Nov 21, 2005
    Author:
    av
    • Constructor Detail

      • RolapNativeCrossJoin

        public RolapNativeCrossJoin()
    • Method Detail

      • restrictMemberTypes

        protected boolean restrictMemberTypes()
        Description copied from class: RolapNativeSet
        Returns whether certain member types (e.g. calculated members) should disable native SQL evaluation for expressions containing them.

        If true, expressions containing calculated members will be evaluated by the interpreter, instead of using SQL.

        If false, calc members will be ignored and the computation will be done in SQL, returning more members than requested. This is ok, if the superflous members are filtered out in java code afterwards.

        Specified by:
        restrictMemberTypes in class RolapNativeSet
        Returns:
        whether certain member types should disable native SQL evaluation