Package mondrian.spi.impl
Class InformixDialect
- java.lang.Object
-
- mondrian.spi.impl.JdbcDialectImpl
-
- mondrian.spi.impl.InformixDialect
-
- All Implemented Interfaces:
Dialect
public class InformixDialect extends JdbcDialectImpl
Implementation ofDialect
for the Informix 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 JdbcDialectFactory
FACTORY
-
Fields inherited from class mondrian.spi.impl.JdbcDialectImpl
databaseProduct, permitsSelectNotInGroupBy, productVersion
-
-
Constructor Summary
Constructors Constructor Description InformixDialect(Connection connection)
Creates an InformixDialect.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
allowsFromQuery()
Returns whether this Dialect allows a subquery in the from clause, for exampleSELECT * FROM (SELECT * FROM t) AS x
String
generateOrderByNulls(String expr, boolean ascending, boolean collateNullsLast)
Generates SQL to force null values to collate last.boolean
supportsGroupByExpressions()
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, allowsJoinOn, allowsMultipleCountDistinct, allowsMultipleDistinctSqlMeasures, allowsOrderByAlias, allowsRegularExpressionInWhereClause, allowsSelectNotInGroupBy, appendHintsAfterFromClause, caseWhenElse, computeStatisticsProviders, deduceIdentifierQuoteString, deduceMaxColumnNameLength, deduceProductName, deduceProductVersion, deduceReadOnly, deduceSupportedResultSetStyles, deduceSupportsSelectNotInGroupBy, extractEmbeddedFlags, generateCountExpression, generateInline, generateInlineForAnsi, generateInlineGeneric, generateOrderByNullsAnsi, generateOrderItem, generateRegularExpression, getDatabaseProduct, getMaxColumnNameLength, getProduct, getQuoteIdentifierString, getStatisticsProviders, getType, isDatabase, needsExponent, quote, quoteBooleanLiteral, quoteDateLiteral, quoteDateLiteral, quoteIdentifier, quoteIdentifier, quoteIdentifier, quoteIdentifier, quoteNumericLiteral, quoteStringLiteral, quoteTimeLiteral, quoteTimestampLiteral, quoteTimestampLiteral, requiresAliasForFromQuery, requiresGroupByAlias, requiresHavingAlias, requiresOrderByAlias, requiresUnionOrderByExprToBeInSelectClause, requiresUnionOrderByOrdinal, supportsGroupingSets, supportsMultiValueInExpr, supportsResultSetConcurrency, supportsUnlimitedValueList, toString, toUpper
-
-
-
-
Field Detail
-
FACTORY
public static final JdbcDialectFactory FACTORY
-
-
Constructor Detail
-
InformixDialect
public InformixDialect(Connection connection) throws SQLException
Creates an InformixDialect.- Parameters:
connection
- Connection- Throws:
SQLException
-
-
Method Detail
-
allowsFromQuery
public boolean allowsFromQuery()
Description copied from interface:Dialect
Returns whether this Dialect allows a subquery in the from clause, for exampleSELECT * FROM (SELECT * FROM t) AS x
- Specified by:
allowsFromQuery
in interfaceDialect
- Overrides:
allowsFromQuery
in classJdbcDialectImpl
- Returns:
- whether Dialect allows subquery in FROM clause
- See Also:
Dialect.requiresAliasForFromQuery()
-
generateOrderByNulls
public String generateOrderByNulls(String expr, boolean ascending, boolean collateNullsLast)
Description copied from class:JdbcDialectImpl
Generates SQL to force null values to collate last.This default implementation makes use of the ANSI SQL 1999 CASE-WHEN-THEN-ELSE in conjunction with IS NULL syntax. The resulting SQL will look something like this:
CASE WHEN "expr" IS NULL THEN 0 ELSE 1 END
You can override this method for a particular database to use something more efficient, like ISNULL().
ANSI SQL provides the syntax "ASC/DESC NULLS LAST" and "ASC/DESC NULLS FIRST". If your database supports the ANSI syntax, implement this method by calling
JdbcDialectImpl.generateOrderByNullsAnsi(java.lang.String, boolean, boolean)
.This method is only called from
JdbcDialectImpl.generateOrderItem(String, boolean, boolean, boolean)
. Some dialects override that method and therefore never call this method.- Overrides:
generateOrderByNulls
in classJdbcDialectImpl
- Parameters:
expr
- Expression.ascending
- Whether ascending.collateNullsLast
- Whether nulls should appear first or last.- Returns:
- Expression to force null values to collate last or first.
-
supportsGroupByExpressions
public boolean supportsGroupByExpressions()
Description copied from interface:Dialect
Returns whether this Dialect supports expressions in the GROUP BY clause. Derby/Cloudscape and Infobright do not.- Specified by:
supportsGroupByExpressions
in interfaceDialect
- Overrides:
supportsGroupByExpressions
in classJdbcDialectImpl
- Returns:
- Whether this Dialect allows expressions in the GROUP BY clause
-
-