Package mondrian.spi.impl
Class DerbyDialect
- java.lang.Object
-
- mondrian.spi.impl.JdbcDialectImpl
-
- mondrian.spi.impl.DerbyDialect
-
- All Implemented Interfaces:
Dialect
public class DerbyDialect extends JdbcDialectImpl
Implementation ofDialectfor the Apache Derby database.- Since:
- Nov 23, 2008
- Author:
- jhyde
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface mondrian.spi.Dialect
Dialect.DatabaseProduct, Dialect.Datatype
-
-
Field Summary
Fields Modifier and Type Field Description static JdbcDialectFactoryFACTORY-
Fields inherited from class mondrian.spi.impl.JdbcDialectImpl
databaseProduct, permitsSelectNotInGroupBy, productVersion
-
-
Constructor Summary
Constructors Constructor Description DerbyDialect(Connection connection)Creates a DerbyDialect.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanallowsMultipleCountDistinct()Returns whether this Dialect supports more than one distinct aggregation in the same query.StringgenerateInline(List<String> columnNames, List<String> columnTypes, List<String[]> valueList)Generates a SQL statement to represent an inline dataset.protected voidquoteDateLiteral(StringBuilder buf, String value, Date date)Helper method forJdbcDialectImpl.quoteDateLiteral(StringBuilder, String).booleanrequiresAliasForFromQuery()Returns whether this Dialect requires subqueries in the FROM clause to have an alias.booleansupportsGroupByExpressions()Returns whether this Dialect supports expressions in the GROUP BY clause.-
Methods inherited from class mondrian.spi.impl.JdbcDialectImpl
allowsAs, allowsCompoundCountDistinct, allowsCountDistinct, allowsCountDistinctWithOtherAggs, allowsDdl, allowsDialectSharing, allowsFromQuery, allowsJoinOn, allowsMultipleDistinctSqlMeasures, allowsOrderByAlias, allowsRegularExpressionInWhereClause, allowsSelectNotInGroupBy, appendHintsAfterFromClause, caseWhenElse, computeStatisticsProviders, deduceIdentifierQuoteString, deduceMaxColumnNameLength, deduceProductName, deduceProductVersion, deduceReadOnly, deduceSupportedResultSetStyles, deduceSupportsSelectNotInGroupBy, extractEmbeddedFlags, generateCountExpression, generateInlineForAnsi, generateInlineGeneric, generateOrderByNulls, generateOrderByNullsAnsi, generateOrderItem, generateRegularExpression, getDatabaseProduct, getMaxColumnNameLength, getProduct, getQuoteIdentifierString, getStatisticsProviders, getType, isDatabase, needsExponent, quote, quoteBooleanLiteral, quoteDateLiteral, quoteIdentifier, quoteIdentifier, quoteIdentifier, quoteIdentifier, quoteNumericLiteral, quoteStringLiteral, quoteTimeLiteral, quoteTimestampLiteral, quoteTimestampLiteral, requiresGroupByAlias, requiresHavingAlias, requiresOrderByAlias, requiresUnionOrderByExprToBeInSelectClause, requiresUnionOrderByOrdinal, supportsGroupingSets, supportsMultiValueInExpr, supportsResultSetConcurrency, supportsUnlimitedValueList, toString, toUpper
-
-
-
-
Field Detail
-
FACTORY
public static final JdbcDialectFactory FACTORY
-
-
Constructor Detail
-
DerbyDialect
public DerbyDialect(Connection connection) throws SQLException
Creates a DerbyDialect.- Parameters:
connection- Connection- Throws:
SQLException
-
-
Method Detail
-
quoteDateLiteral
protected void quoteDateLiteral(StringBuilder buf, String value, Date date)
Description copied from class:JdbcDialectImplHelper method forJdbcDialectImpl.quoteDateLiteral(StringBuilder, String).- Overrides:
quoteDateLiteralin classJdbcDialectImpl- Parameters:
buf- Buffer to append tovalue- Value as stringdate- Value as date
-
requiresAliasForFromQuery
public boolean requiresAliasForFromQuery()
Description copied from interface:DialectReturns whether this Dialect requires subqueries in the FROM clause to have an alias.- Specified by:
requiresAliasForFromQueryin interfaceDialect- Overrides:
requiresAliasForFromQueryin classJdbcDialectImpl- Returns:
- whether dialewct requires subqueries to have an alias
- See Also:
Dialect.allowsFromQuery()
-
allowsMultipleCountDistinct
public boolean allowsMultipleCountDistinct()
Description copied from interface:DialectReturns whether this Dialect supports more than one distinct aggregation in the same query.In Derby 10.1,
is OK, butselect couunt(distinct x) from t
gives "Multiple DISTINCT aggregates are not supported at this time."select couunt(distinct x), count(distinct y) from t- Specified by:
allowsMultipleCountDistinctin interfaceDialect- Overrides:
allowsMultipleCountDistinctin classJdbcDialectImpl- Returns:
- whether this Dialect supports more than one distinct aggregation in the same query
-
generateInline
public String generateInline(List<String> columnNames, List<String> columnTypes, List<String[]> valueList)
Description copied from interface:DialectGenerates a SQL statement to represent an inline dataset.For example, for Oracle, generates
SELECT 1 AS FOO, 'a' AS BAR FROM dual UNION ALL SELECT 2 AS FOO, 'b' AS BAR FROM dual
For ANSI SQL, generates:
VALUES (1, 'a'), (2, 'b')
- Specified by:
generateInlinein interfaceDialect- Overrides:
generateInlinein classJdbcDialectImpl- Parameters:
columnNames- List of column namescolumnTypes- List of column types ("String" or "Numeric")valueList- List of rows values- Returns:
- SQL string
-
supportsGroupByExpressions
public boolean supportsGroupByExpressions()
Description copied from interface:DialectReturns whether this Dialect supports expressions in the GROUP BY clause. Derby/Cloudscape and Infobright do not.- Specified by:
supportsGroupByExpressionsin interfaceDialect- Overrides:
supportsGroupByExpressionsin classJdbcDialectImpl- Returns:
- Whether this Dialect allows expressions in the GROUP BY clause
-
-