Package mondrian.spi.impl
Class MicrosoftSqlServerDialect
java.lang.Object
mondrian.spi.impl.JdbcDialectImpl
mondrian.spi.impl.MicrosoftSqlServerDialect
- All Implemented Interfaces:
Dialect
Implementation of
Dialect for the Microsoft SQL Server
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
FieldsFields inherited from class mondrian.spi.impl.JdbcDialectImpl
databaseProduct, permitsSelectNotInGroupBy, productVersion -
Constructor Summary
ConstructorsConstructorDescriptionMicrosoftSqlServerDialect(Connection connection) Creates a MicrosoftSqlServerDialect. -
Method Summary
Modifier and TypeMethodDescriptionGenerates a SQL statement to represent an inline dataset.voidquoteBooleanLiteral(StringBuilder buf, String value) Appends to a buffer a boolean literal.protected voidquoteDateLiteral(StringBuilder buf, String value, Date date) Helper method forJdbcDialectImpl.quoteDateLiteral(StringBuilder, String).protected voidquoteTimestampLiteral(StringBuilder buf, String value, Timestamp timestamp) booleanReturns whether this Dialect requires subqueries in the FROM clause to have an alias.booleanReturns true if this dialect allows only integers in the ORDER BY clause of a UNION (or other set operation) query.Methods inherited from class mondrian.spi.impl.JdbcDialectImpl
allowsAs, allowsCompoundCountDistinct, allowsCountDistinct, allowsCountDistinctWithOtherAggs, allowsDdl, allowsDialectSharing, allowsFromQuery, allowsJoinOn, allowsMultipleCountDistinct, 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, quoteDateLiteral, quoteIdentifier, quoteIdentifier, quoteIdentifier, quoteIdentifier, quoteNumericLiteral, quoteStringLiteral, quoteTimeLiteral, quoteTimestampLiteral, requiresGroupByAlias, requiresHavingAlias, requiresOrderByAlias, requiresUnionOrderByExprToBeInSelectClause, supportsGroupByExpressions, supportsGroupingSets, supportsMultiValueInExpr, supportsResultSetConcurrency, supportsUnlimitedValueList, toString, toUpper
-
Field Details
-
FACTORY
-
-
Constructor Details
-
MicrosoftSqlServerDialect
Creates a MicrosoftSqlServerDialect.- Parameters:
connection- Connection- Throws:
SQLException
-
-
Method Details
-
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
-
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:
-
requiresUnionOrderByOrdinal
public boolean requiresUnionOrderByOrdinal()Description copied from interface:DialectReturns true if this dialect allows only integers in the ORDER BY clause of a UNION (or other set operation) query.For example,
SELECT x, y + z FROM tis allowed but
UNION ALL
SELECT x, y + z FROM t
ORDER BY 1, 2SELECT x, y, z FROM tis not.
UNION ALL
SELECT x, y, z FROM t
ORDER BY xTeradata is an example of a dialect with this restriction.
- Specified by:
requiresUnionOrderByOrdinalin interfaceDialect- Overrides:
requiresUnionOrderByOrdinalin classJdbcDialectImpl- Returns:
- whether this dialect allows only integers in the ORDER BY clause of a UNION (or other set operation) query
-
quoteBooleanLiteral
Description copied from interface:DialectAppends to a buffer a boolean literal.In the default dialect, boolean literals are printed as is.
- Specified by:
quoteBooleanLiteralin interfaceDialect- Overrides:
quoteBooleanLiteralin classJdbcDialectImpl- Parameters:
buf- Buffer to append tovalue- Literal
-
quoteDateLiteral
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
-
quoteTimestampLiteral
- Overrides:
quoteTimestampLiteralin classJdbcDialectImpl
-