Package mondrian.rolap
Class RolapUtil
java.lang.Object
mondrian.rolap.RolapUtil
Utility methods for classes in the
mondrian.rolap
package.- Since:
- 22 December, 2001
- Author:
- jhyde
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic interface
static class
Writes to a string and also to an underlying writer. -
Field Summary
Modifier and TypeFieldDescriptionstatic final org.apache.logging.log4j.Logger
static final org.apache.logging.log4j.Logger
static final org.apache.logging.log4j.Logger
static final Comparator
A comparator singleton instance which can handle the presence ofRolapUtil.RolapUtilComparable
instances in a collection.static final org.apache.logging.log4j.Logger
static final String
static final Comparable<?>
Special value represents a null key.static final Object
Special cell value indicates that the value is not in cache yet. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic void
alertNonNative
(String functionName, String reason) 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.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.static MondrianDef.Relation
convertInlineTableToRelation
(MondrianDef.InlineTable inlineTable, Dialect dialect) static ExpCompiler
createDependencyTestingCompiler
(ExpCompiler compiler) Creates a compiler which will generate programs which will test whether the dependencies declared viaCalc.dependsOn(Hierarchy)
are accurate.static Evaluator
createEvaluator
(Statement statement) Creates a dummy evaluator.static ExpCompiler
createProfilingCompiler
(ExpCompiler compiler) 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.static SqlStatement
executeQuery
(DataSource dataSource, String sql, Locus locus) Executes a query, printing to the trace log if tracing is enabled.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.static Util.Functor1<Void,
Statement> getDefaultCallback
(Locus locus) static RolapUtil.ExecuteQueryHook
getHook()
Sets the query-execution hook used by tests.static void
loadDrivers
(String jdbcDrivers) Loads a set of JDBC drivers.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.makeRolapStarKey
(String factTableName) Generates rolap star key based on the fact table name.Generates rolap star key based on the fact using fact alias and SQl filter data if this one is present in the factstatic String
static void
static void
static RolapMember
strip
(RolapMember member)
-
Field Details
-
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
Special cell value indicates that the value is not in cache yet. -
sqlNullValue
Special value represents a null key. -
ROLAP_COMPARATOR
A comparator singleton instance which can handle the presence ofRolapUtil.RolapUtilComparable
instances in a collection. -
sqlNullLiteral
- See Also:
-
-
Constructor Details
-
RolapUtil
public RolapUtil()
-
-
Method Details
-
getDefaultCallback
-
locusSchemaReader
Wraps a schema reader in a proxy so that each call to schema reader has a locus for profiling purposes.- Parameters:
connection
- ConnectionschemaReader
- Schema reader- Returns:
- Wrapped schema reader
-
getHook
Sets the query-execution hook used by tests. This method andsetHook(mondrian.rolap.RolapUtil.ExecuteQueryHook)
are synchronized to ensure a memory barrier.- Returns:
- Query execution hook
-
setHook
-
mdxNullLiteral
-
reloadNullLiteral
public static void reloadNullLiteral() -
executeQuery
Executes a query, printing to the trace log if tracing is enabled.If the query fails, it wraps the
SQLException
in a runtime exception withmessage
as description, and closes the result set.If it succeeds, the caller must call the
SqlStatement.close()
method of the returnedSqlStatement
.- Parameters:
dataSource
- DataSourcesql
- SQL stringlocus
- 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 withmessage
as description, and closes the result set.If it succeeds, the caller must call the
SqlStatement.close()
method of the returnedSqlStatement
.- Parameters:
dataSource
- DataSourcesql
- SQL stringtypes
- 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 columnmaxRowCount
- Maximum number of rows to retrieve, <= 0 if unlimitedfirstRowOrdinal
- Ordinal of row to skip to (1-based), or 0 to start from beginninglocus
- Execution context of this statementresultSetType
- Result set type, or -1 to use defaultresultSetConcurrency
- 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 skippedreason
- reason why native evaluation was skipped- Throws:
NativeEvaluationUnsupportedException
-
loadDrivers
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
Creates a compiler which will generate programs which will test whether the dependencies declared viaCalc.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 fromparent
- parent member corresponding to the member being searched forlevel
- level of the membersearchName
- member namematchType
- match type- Returns:
- matching member (if it exists) or the closest matching one in the case of a BEFORE or AFTER search
-
convertInlineTableToRelation
public static MondrianDef.Relation convertInlineTableToRelation(MondrianDef.InlineTable inlineTable, Dialect dialect) -
strip
-
createProfilingCompiler
-
createEvaluator
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
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
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
-