Package mondrian.spi.impl
Class MicrosoftSqlServerDialect
- java.lang.Object
-
- mondrian.spi.impl.JdbcDialectImpl
-
- mondrian.spi.impl.MicrosoftSqlServerDialect
-
- All Implemented Interfaces:
Dialect
public class MicrosoftSqlServerDialect extends JdbcDialectImpl
Implementation ofDialect
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
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 MicrosoftSqlServerDialect(Connection connection)
Creates a MicrosoftSqlServerDialect.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
generateInline(List<String> columnNames, List<String> columnTypes, List<String[]> valueList)
Generates a SQL statement to represent an inline dataset.void
quoteBooleanLiteral(StringBuilder buf, String value)
Appends to a buffer a boolean literal.protected void
quoteDateLiteral(StringBuilder buf, String value, Date date)
Helper method forJdbcDialectImpl.quoteDateLiteral(StringBuilder, String)
.protected void
quoteTimestampLiteral(StringBuilder buf, String value, Timestamp timestamp)
boolean
requiresAliasForFromQuery()
Returns whether this Dialect requires subqueries in the FROM clause to have an alias.boolean
requiresUnionOrderByOrdinal()
Returns 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 Detail
-
FACTORY
public static final JdbcDialectFactory FACTORY
-
-
Constructor Detail
-
MicrosoftSqlServerDialect
public MicrosoftSqlServerDialect(Connection connection) throws SQLException
Creates a MicrosoftSqlServerDialect.- Parameters:
connection
- Connection- Throws:
SQLException
-
-
Method Detail
-
generateInline
public String generateInline(List<String> columnNames, List<String> columnTypes, List<String[]> valueList)
Description copied from interface:Dialect
Generates 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:
generateInline
in interfaceDialect
- Overrides:
generateInline
in 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:Dialect
Returns whether this Dialect requires subqueries in the FROM clause to have an alias.- Specified by:
requiresAliasForFromQuery
in interfaceDialect
- Overrides:
requiresAliasForFromQuery
in classJdbcDialectImpl
- Returns:
- whether dialewct requires subqueries to have an alias
- See Also:
Dialect.allowsFromQuery()
-
requiresUnionOrderByOrdinal
public boolean requiresUnionOrderByOrdinal()
Description copied from interface:Dialect
Returns 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 t
is allowed but
UNION ALL
SELECT x, y + z FROM t
ORDER BY 1, 2SELECT x, y, z FROM t
is not.
UNION ALL
SELECT x, y, z FROM t
ORDER BY xTeradata is an example of a dialect with this restriction.
- Specified by:
requiresUnionOrderByOrdinal
in interfaceDialect
- Overrides:
requiresUnionOrderByOrdinal
in classJdbcDialectImpl
- Returns:
- whether this dialect allows only integers in the ORDER BY clause of a UNION (or other set operation) query
-
quoteBooleanLiteral
public void quoteBooleanLiteral(StringBuilder buf, String value)
Description copied from interface:Dialect
Appends to a buffer a boolean literal.In the default dialect, boolean literals are printed as is.
- Specified by:
quoteBooleanLiteral
in interfaceDialect
- Overrides:
quoteBooleanLiteral
in classJdbcDialectImpl
- Parameters:
buf
- Buffer to append tovalue
- Literal
-
quoteDateLiteral
protected void quoteDateLiteral(StringBuilder buf, String value, Date date)
Description copied from class:JdbcDialectImpl
Helper method forJdbcDialectImpl.quoteDateLiteral(StringBuilder, String)
.- Overrides:
quoteDateLiteral
in classJdbcDialectImpl
- Parameters:
buf
- Buffer to append tovalue
- Value as stringdate
- Value as date
-
quoteTimestampLiteral
protected void quoteTimestampLiteral(StringBuilder buf, String value, Timestamp timestamp)
- Overrides:
quoteTimestampLiteral
in classJdbcDialectImpl
-
-