# Licensed Materials - Property of IBM # IBM Cognos Products: OQP # (C) Copyright IBM Corp. 2005, 2017 # US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM corp. # # OLAP Metadata for DMR queries. # # # MDX Optimizations # This configuration flags says whether the provider supports replacing the aggregate of child members with the parent # when XQE believes this will be true. This is not guaranteed to work for all providers, so this setting must default # to false. # mdx.optimize.parentmember=true # # Null behavior of comparison operators (=, !=, <, <=, >, >=) in the MDX engine. # This should be set to "null" or "zero". # When set to null, expressions such as "null < number" and "number < null" will evaluate to null. # When set to zero, null is treated as zero. # null.comparison.operator=null # # Null behavior of boolean operators (and, or, xor) in the MDX engine. # This should be set to "null" or "false". # null.boolean.operator=null # # Null behaviour in the MDX engine for the arithmetic operators: +, -. *, /, % # When null.divide.denominator is set to zero, a number divided by null will return /0. # When null.divide.denominator is set to null, a number divided by null will return null. # null.plus.operator=null null.minus.operator=null null.multiply.operator=null null.divide.numerator=null null.divide.denominator=null null.modulo.dividend=null null.modulo.divisor=null # # Null behaviour in the MDX engine vb functions (Abs, Int, Round). # null.vb.math.function=null # # When processing an MDX if a member is not found, by default the mdx engine # throws an exception. Setting this parameter to "true", however, will trigger the # engine to create a null member for that member and continue the processing. # mdx.useNullForNonExistingMember=true # # This property controls how ambiguous an ambiguous dimension identifier is resolved # within the MDX engine, when the dimension has a single hierarchy. # # For example, with a Cube with a level unique name of [Sales].[Product].[Product], # the identifer [Sales].[Product] could be referring to the level or to the hierarchy. # # This property can have the following values: # # level - The identifier will be resolved as a level # hierarchy - The identifier will be resolved as a hierarchy # mdx.level.hierarchy.ambiguity.resolution=hierarchy # # V5 Member and Measure Detail Filter timing for the postAutoAggregation flag. # # reportDetails: Apply the filter along with Summary Filters to the details of the report. This would mean it happens after OLAP functions such as TOPCOUNT, as an example. # virtualDetails: Apply the filter to the virtual details cube at the lowest projected levels. This would mean it happens before OLAP functions such as TOPCOUNT, as an example. # # Not that OR filters between different hierarchies are virtualDetails by default and this is not yet configurable. # v5.postAutoAggregation.timing=reportDetails # # MDX Support for OLYMPIC rank with implicit sort # mdx.support.olympicRankSort=false # # Property to enable DMR cube reuse # enableDMRcubeReuse=true # # Property to set the maximum size(M) of DMR ResultSet cache. # ResultSet cache is part of DMR reuseable cube. # ResultSet cache is automatically disabled when enableDMRcubeReuse is turned off. # Default value is 50M. # 0 or negative value disables DMR ResultSet cache. # dmrResultSetCacheSize=50 # # V5 master-detail optimization when allRows optimization is specified # v5.master-detail.transform=true # false - generating parameterized detail filter to detail query ( default ) # true - generating extra edge to detail query # # If true, we issue one subquery per measure. # Temporary switch until we know how the measures are defined over the relational table. # oneMeasurePerSubquery=false # # This property instructs the planner to plan the query by ignoring (=true) or not (=false) # the v5 suppress query hint XML element. When the planner ignore it, the query planned # as per suppress query hint default value (i.e. when not specified). # The default property value (including when not specified) is false. # The initial usage of this property is to overwrite the ANS default behavior specifying suppress query hint to NONE # by default, without ability to change it. # This property has to be carefully used since it impact all planned V5 query (global planner settings) for # all planned V5 queries. # Do not change this value unless directed to by IBM. # v5.suppress.queryhint.ignore=false # This property controls whether the query engine should automatically inject a pre auto aggregation # measure detail filter to assist the V5 suppression of nulls. # #v5.suppress.nulls.usePreAutoAggregationMeasureDetailFilter=true # # Enable the member storage. # enableDMRmemberStorage=true # # This property tells whether the provider may filter the data before applying the MDX. # It may take one of this values: # - always: the provider always filter the data before applying the MDX, # - never: the provider never filter the data before applying the MDX, # - forNonEmpty: Only in the presence of MDX edge NON EMPTY the provider filters the data before applying the MDX. # datasource.appliesFilterBeforeMDX=always # # If true, we load other report measures when loading measure for a crossjoinedset. # loadOtherReportMeasuresWhenLoadMeasure=true # # If true, DMR will push down the aggregate expression that can not be calculated internally # to the relational database. # If false, DMR will return an error cell "--" instead. # pushdownExtAggregatesToRelational=true # # If true, DMR will push down the evaluation of # TopBottomCount, Head, and Filter expression to the relational database # through CustomSet function. # enablePushdownThroughCustomSet = false # # If true, DMR will push down the evaluation of the TopBottomCount expression to the relational database # pushdownTopBottomCountToRelational=false # # If true, DMR will push down the evaluation of the TopPercent/Sum expression to the relational database # pushdownTopPercentSumToRelational=false # # If true, DMR will push down the evaluation of the Filter expression to the relational database # pushdownFilterToRelational=false # # If true, DMR will push down the evaluation of calculations in filter pushdown to the relational database # pushdownCalculationsInFilterPushdownToRelational=false # # If true, DMR will push down the evaluation of the Head/Tail expression to the relational database # pushdownHeadTailToRelational=false # # If true, DMR will push down by CustomValue function the evaluation of the calculated member to the relational database # when this calculation involves Descendants function over a non projected large level. # pushdownCustomValueToRelational=false # # If true, the input set for the Topcount operator is filtered when pushdown is on # enableFilterSetInPushDownMode=false # # If true, the coalesce function is used for rank when pushdown is on. # enableCoalesceRankInPushDownMode=true # # If true, the coalesce function is used for filter when pushdown is on. # enableCoalesceFilterInPushDownMode=true # # The minimum size of the set in top/bottom count pushdown mode. # topBottomCountPushdownMinimumSetSize=100000 # # The minimum size of the set in filter pushdown mode. # FilterPushdownMinimumSetSize=100000 # # Controls if DMR will try loading multiple level of cell values # using single SQL query involving windowed aggregate functions. # Valid values are 0, 1, and 2. # When 0, SQL query generated to load each individual combination # of aggregation. In other words, no optimization. # When 1, Loading multiple level of cell values using single SQL query. # The SQL query loads all combination of aggregations, # regardless if it's required or not by the query. # When 2 (default value), Loading multiple level of cell values using single SQL query. # The SQL query only loads combination of aggregations # that are required by the query. dmrSummaryQueryOptimizationLevel=2 # # Control maximum number of aggregations that single cube loading query # is allowed to have. The complexity of SQL query increases when aggregations number grows. # dmrMaximumNumberOfAggregationsInCubeLoadingQuery=10 # # If merge, member loading will be incremental. Only required members in a query will be loaded. # If true, member loading will be incremental. It might load extra members not required by the current query. # Otherwise entire level or levels will be loaded into cube. # enableIncrementalMemberLoading=merge # # Only used when enableIncrementalMemberLoading is ture. # Maximum number of restriction members allowed on a level without loading entire level # restrictionMembersCountThreshold=1000 # # number of levels to fetch members from # dmrNumberOfLevelsToIncludeInMultipleLevelFetch=3 # # Specify whether or not the provider will be sub-queried for MUNs. # This feature is not required for this datasource and thefore not supported.for it # queryProviderForMUNs=false # # This property controls how to handle the projection of nested levels of the same hierarchy. # Specifically the use of the technique involving nested level decoration rules. # In that case the planner queries only the lowest level members, later the post-processing queries the outer levels if required. # - always: always use this technique # - never: never use this technique # - automatic: allow the planner to decide whether to use or not this technique. # applyNestedLevelDecorationRules=always # # This property controls how to handle the DMR cell fetching for the same CJS in multi-threads case. # If true, If this is not the first thread trying to execute the query, block it until the first # thread finishes and this thread can use the cached data. # blockingFetchingSameCells=true # # This property controls how to handle the pre-planning in multi-threads case. # If true, If this is not the first thread trying to pre-plan the query, block it until the first # thread finishes and this thread can use the cached data. # blockingPrePlanSameMetaDataObjects=true # # This property controls how to handle the DMR execution for the same MDX in multi-threads case. # If true, If this is not the first thread trying to execute the MDX, block it until the first # thread finishes and this thread can use the cached data. blockingSameMDXExecution=true # # This property controls how to handle the DMR report using only levels from multiple hierarchies (measure is not used). # the options: # 0: do cross-join as other OLAP providers. # 1: use the first fact table (this is the default behavior in RQP for list report). # 2: stitch by rows (RQP can turn on this behavior). # 3: throw exception (if the cross-join result is too big) stitchMultiHierLevelsForReportWithoutMeasure=0 # # This property controls two things: # a. if pre-loading the cells is enabled for temporary DMR Cube (Cache is disabled). # any positive number will enable pre-loading for temporary DMR Cube (Cache is disabled). # b. the maximum cell count for pre-loading. If the number of required cells exceeds this threshold, don't pre-load. preLoadCellCountThreshold=10000 # How will DMRQueryStrategy load cells after preloading is successful? # OverLoad: Might over load cells. This is the current DMRQueryStrategy behavior. # NoLoad: don't load any new cells. Assuming pre-loading loads all required cells. # PreciseLoad: use the same rule as Pre-loading. Just load the cells required by the MDX engine. # default is PreciseLoad CellFetchingAfterPreloading=NoLoad # # For local MDX engine to decide if splitting a symmetric query for a requested set of tuples into # multiple more precise queries is worthwhile. # The heuristic for determining whether to split a requested set into multiple queries is: # if (symmetricTuples - requiredTuples > minExcessTuplesForSplitQuery # && symmetricTuples / requiredTuples > excessTuplesRatioForSplitQuery) # When either threshold is set to -1, a requested set of tuples is never split into multiple queries. # lolap.minExcessTuplesForSplitQuery=0 lolap.excessTuplesRatioForSplitQuery=0 # # This property controls if DMR cube is loaded with a single sub-query. # If false, single loading is disabled. # If true, single loading might be used depending on other conditions. # If auto, fact driven cube loading might be applied. enablePreLoadCubeWithSingleSubQuery=auto # # If the Order Of Magnitude of a Level used in set function is larger than this setting, # DMR will push down the evaluation of set function like # TopBottomCount, Head, and Filter expression to the relational database # through CustomSet function. # PushdownThroughCustomSetForLevelOOMLargerThan=3.3 # This property controls if relative function needs to be expanded when cube is not reused. expandRelativeFunctionCubeNotReuse=false # If true, level property is loaded when member is loaded even if the BusinessKey and Property are from different tables. # If false, level property is not loaded when member is loaded if the BusinessKey and Property are from different tables. loadLevelPropertyWithMember=false # if fact driven cube loading is not possible and large level is used, throw error. # This setting is used when enablePreLoadCubeWithSingleSubQuery=auto ThrowNoFactDrivenLoadingForLevelOOMLargerThan=4.7 # if true, the sub-query for customset might use SQL TopN feature. # if false, the sub-query for customset uses rank in detail filter. CustomSetUseTopN=true # 0: don' resort. members are returned from higher to lower levels in hierarchy order. # 1: members are returned from higher to lower levels. In each level, resorted by caption (asc). # 2: members are resorted by caption (asc). ReSortMembersFromHierarchySearch=0 # # This property controls if marking a dmr level as unique has impact on the SQL generation for # fetching cell value queries. When enabled the generated predicates only include terms up to and # including the level that is unique. # enableUniqueLevelSupport=true # # This property controls whether pre load cube optimization will be applied to a query or not # when the query already contains PushdownThroughCustomSet optimization. # enablePreLoadCubeDuringPushdown=true # If this is set to a positive number N and # code thinks the simple list V5 is from CWA dialog box and # the order of magnitude of involved level is larger than (or equals to) ThrowNoFactDrivenLoadingForLevelOOMLargerThan # add TopN to load and return the N members. CWADialogBoxTopN=0 # maximum number of members being added into detail filter of DMR sub-query. maxMembersInSubQueryDetailFilter=2000 # keep dimension shortcut in model calculation keepDimensionShortcutInModelCalculation=true # for DMR measure with aggregateType=Calculated, DMR sub-query generates aggregate(xxx for a, b, ..) # If this setting is true, the aggregate function will have a property: calculated=true. # RQP will try to decompose the first parameter of aggregate function. decomposeDMRCalculatedMeasure=false # disable bridge. disableBridge=false # If it is true, and, fact driven cube loading is enabled (enablePreLoadCubeWithSingleSubQuery=auto), # the aggregate rule will be applied in query context. contextDependentIgnoreNullsAggregateRule=false