Class RolapUtil


  • public class RolapUtil
    extends Object
    Utility methods for classes in the mondrian.rolap package.
    Since:
    22 December, 2001
    Author:
    jhyde
    • Field Detail

      • MDX_LOGGER

        public static final org.apache.logging.log4j.Logger MDX_LOGGER
      • SQL_LOGGER

        public static final org.apache.logging.log4j.Logger SQL_LOGGER
      • MONITOR_LOGGER

        public static final org.apache.logging.log4j.Logger MONITOR_LOGGER
      • PROFILE_LOGGER

        public static final org.apache.logging.log4j.Logger PROFILE_LOGGER
      • valueNotReadyException

        public static final Object valueNotReadyException
        Special cell value indicates that the value is not in cache yet.
      • sqlNullValue

        public static final Comparable<?> sqlNullValue
        Special value represents a null key.
      • ROLAP_COMPARATOR

        public static final Comparator ROLAP_COMPARATOR
        A comparator singleton instance which can handle the presence of RolapUtil.RolapUtilComparable instances in a collection.
    • Constructor Detail

      • RolapUtil

        public RolapUtil()
    • Method Detail

      • locusSchemaReader

        public static SchemaReader locusSchemaReader​(RolapConnection connection,
                                                     SchemaReader schemaReader)
        Wraps a schema reader in a proxy so that each call to schema reader has a locus for profiling purposes.
        Parameters:
        connection - Connection
        schemaReader - Schema reader
        Returns:
        Wrapped schema reader
      • mdxNullLiteral

        public static String mdxNullLiteral()
      • reloadNullLiteral

        public static void reloadNullLiteral()
      • executeQuery

        public static SqlStatement executeQuery​(DataSource dataSource,
                                                String sql,
                                                Locus locus)
        Executes a query, printing to the trace log if tracing is enabled.

        If the query fails, it wraps the SQLException in a runtime exception with message as description, and closes the result set.

        If it succeeds, the caller must call the SqlStatement.close() method of the returned SqlStatement.

        Parameters:
        dataSource - DataSource
        sql - SQL string
        locus - Locus of execution
        Returns:
        ResultSet
      • executeQuery

        public static SqlStatement executeQuery​(DataSource dataSource,
                                                String sql,
                                                List<SqlStatement.Type> types,
                                                int maxRowCount,
                                                int firstRowOrdinal,
                                                Locus locus,
                                                int resultSetType,
                                                int resultSetConcurrency,
                                                Util.Functor1<Void,​Statement> callback)
        Executes a query.

        If the query fails, it wraps the SQLException in a runtime exception with message as description, and closes the result set.

        If it succeeds, the caller must call the SqlStatement.close() method of the returned SqlStatement.

        Parameters:
        dataSource - DataSource
        sql - SQL string
        types - Suggested types of columns, or null; if present, must have one element for each SQL column; each not-null entry overrides deduced JDBC type of the column
        maxRowCount - Maximum number of rows to retrieve, <= 0 if unlimited
        firstRowOrdinal - Ordinal of row to skip to (1-based), or 0 to start from beginning
        locus - Execution context of this statement
        resultSetType - Result set type, or -1 to use default
        resultSetConcurrency - Result set concurrency, or -1 to use default
        Returns:
        ResultSet
      • alertNonNative

        public static void alertNonNative​(String functionName,
                                          String reason)
                                   throws NativeEvaluationUnsupportedException
        Raises an alert that native SQL evaluation could not be used in a case where it might have been beneficial, but some limitation in Mondrian's implementation prevented it. (Do not call this in cases where native evaluation would have been wasted effort.)
        Parameters:
        functionName - name of function for which native evaluation was skipped
        reason - reason why native evaluation was skipped
        Throws:
        NativeEvaluationUnsupportedException
      • loadDrivers

        public static void loadDrivers​(String jdbcDrivers)
        Loads a set of JDBC drivers.
        Parameters:
        jdbcDrivers - A string consisting of the comma-separated names of JDBC driver classes. For example "sun.jdbc.odbc.JdbcOdbcDriver,com.mysql.jdbc.Driver".
      • createDependencyTestingCompiler

        public static ExpCompiler createDependencyTestingCompiler​(ExpCompiler compiler)
        Creates a compiler which will generate programs which will test whether the dependencies declared via Calc.dependsOn(Hierarchy) are accurate.
      • findBestMemberMatch

        public static Member findBestMemberMatch​(List<? extends Member> members,
                                                 RolapMember parent,
                                                 RolapLevel level,
                                                 Id.Segment searchName,
                                                 MatchType matchType)
        Locates a member specified by its member name, from an array of members. If an exact match isn't found, but a matchType of BEFORE or AFTER is specified, then the closest matching member is returned.
        Parameters:
        members - array of members to search from
        parent - parent member corresponding to the member being searched for
        level - level of the member
        searchName - member name
        matchType - match type
        Returns:
        matching member (if it exists) or the closest matching one in the case of a BEFORE or AFTER search
      • createEvaluator

        public static Evaluator createEvaluator​(Statement statement)
        Creates a dummy evaluator.
      • constraintBitkeyForLimitedMembers

        public static void constraintBitkeyForLimitedMembers​(Evaluator evaluator,
                                                             Member[] members,
                                                             RolapCube cube,
                                                             BitKey levelBitKey)
        Modifies a bitkey so that it includes the proper bits for members in an array which should be considered as a limited rollup member.
      • makeRolapStarKey

        public static List<String> makeRolapStarKey​(MondrianDef.Relation fact)
        Generates rolap star key based on the fact using fact alias and SQl filter data if this one is present in the fact
        Parameters:
        fact - the fact based on which is generated the rolap star key
        Returns:
        the rolap star key
      • makeRolapStarKey

        public static List<String> makeRolapStarKey​(String factTableName)
        Generates rolap star key based on the fact table name.
        Parameters:
        factTableName - the fact table name based on which is generated the rolap star key
        Returns:
        the rolap star key