Package org.apache.calcite.sql.dialect
Class MssqlSqlDialect
- java.lang.Object
-
- org.apache.calcite.sql.SqlDialect
-
- org.apache.calcite.sql.dialect.MssqlSqlDialect
-
public class MssqlSqlDialect extends SqlDialect
ASqlDialect
implementation for the Microsoft SQL Server database.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.calcite.sql.SqlDialect
SqlDialect.CalendarPolicy, SqlDialect.Context, SqlDialect.DatabaseProduct, SqlDialect.FakeUtil
-
-
Field Summary
Fields Modifier and Type Field Description static SqlDialect
DEFAULT
private static SqlFunction
MSSQL_SUBSTRING
-
Fields inherited from class org.apache.calcite.sql.SqlDialect
BUILT_IN_OPERATORS_LIST, CALCITE, DUMMY, EMPTY_CONTEXT, LOGGER, nullCollation
-
-
Constructor Summary
Constructors Constructor Description MssqlSqlDialect(SqlDialect.Context context)
Creates a MssqlSqlDialect.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
supportsCharSet()
Returns whether the dialect supports character set names as part of a data type, for instanceVARCHAR(30) CHARACTER SET `ISO-8859-1`
.void
unparseCall(SqlWriter writer, SqlCall call, int leftPrec, int rightPrec)
void
unparseDateTimeLiteral(SqlWriter writer, SqlAbstractDateTimeLiteral literal, int leftPrec, int rightPrec)
private void
unparseFloor(SqlWriter writer, SqlCall call)
Unparses datetime floor for Microsoft SQL Server.private void
unparseFloorWithUnit(SqlWriter writer, SqlCall call, int charLen, java.lang.String offset)
void
unparseSqlDatetimeArithmetic(SqlWriter writer, SqlCall call, SqlKind sqlKind, int leftPrec, int rightPrec)
void
unparseSqlIntervalLiteral(SqlWriter writer, SqlIntervalLiteral literal, int leftPrec, int rightPrec)
Converts an interval literal to a SQL string.private void
unparseSqlIntervalLiteralMssql(SqlWriter writer, SqlIntervalLiteral literal, int sign)
void
unparseSqlIntervalQualifier(SqlWriter writer, SqlIntervalQualifier qualifier, RelDataTypeSystem typeSystem)
Converts an interval qualifier to a SQL string.-
Methods inherited from class org.apache.calcite.sql.SqlDialect
allowsAs, create, defaultNullDirection, emptyContext, emulateNullDirection, emulateNullDirectionWithIsNull, getCalendarPolicy, getCastSpec, getDatabaseProduct, getNullCollation, getProduct, getTypeSystem, hasImplicitTableAlias, identifierNeedsToBeQuoted, quoteIdentifier, quoteIdentifier, quoteIdentifier, quoteStringLiteral, quoteStringLiteralUnicode, quoteTimestampLiteral, requiresAliasForFromItems, rewriteSingleValueExpr, supportsAggregateFunction, supportsAliasedValues, supportsFunction, supportsNestedAggregations, supportsOffsetFetch, supportsWindowFunctions, unparseFetchUsingAnsi, unparseFetchUsingLimit, unparseOffsetFetch, unquoteStringLiteral
-
-
-
-
Field Detail
-
DEFAULT
public static final SqlDialect DEFAULT
-
MSSQL_SUBSTRING
private static final SqlFunction MSSQL_SUBSTRING
-
-
Constructor Detail
-
MssqlSqlDialect
public MssqlSqlDialect(SqlDialect.Context context)
Creates a MssqlSqlDialect.
-
-
Method Detail
-
unparseDateTimeLiteral
public void unparseDateTimeLiteral(SqlWriter writer, SqlAbstractDateTimeLiteral literal, int leftPrec, int rightPrec)
- Overrides:
unparseDateTimeLiteral
in classSqlDialect
-
unparseCall
public void unparseCall(SqlWriter writer, SqlCall call, int leftPrec, int rightPrec)
- Overrides:
unparseCall
in classSqlDialect
-
supportsCharSet
public boolean supportsCharSet()
Description copied from class:SqlDialect
Returns whether the dialect supports character set names as part of a data type, for instanceVARCHAR(30) CHARACTER SET `ISO-8859-1`
.- Overrides:
supportsCharSet
in classSqlDialect
-
unparseFloor
private void unparseFloor(SqlWriter writer, SqlCall call)
Unparses datetime floor for Microsoft SQL Server. There is no TRUNC function, so simulate this using calls to CONVERT.- Parameters:
writer
- Writercall
- Call
-
unparseSqlDatetimeArithmetic
public void unparseSqlDatetimeArithmetic(SqlWriter writer, SqlCall call, SqlKind sqlKind, int leftPrec, int rightPrec)
- Overrides:
unparseSqlDatetimeArithmetic
in classSqlDialect
-
unparseSqlIntervalQualifier
public void unparseSqlIntervalQualifier(SqlWriter writer, SqlIntervalQualifier qualifier, RelDataTypeSystem typeSystem)
Description copied from class:SqlDialect
Converts an interval qualifier to a SQL string. The default implementation returns strings such asINTERVAL '1 2:3:4' DAY(4) TO SECOND(4)
.- Overrides:
unparseSqlIntervalQualifier
in classSqlDialect
-
unparseSqlIntervalLiteral
public void unparseSqlIntervalLiteral(SqlWriter writer, SqlIntervalLiteral literal, int leftPrec, int rightPrec)
Description copied from class:SqlDialect
Converts an interval literal to a SQL string. The default implementation returns strings such asINTERVAL '1 2:3:4' DAY(4) TO SECOND(4)
.- Overrides:
unparseSqlIntervalLiteral
in classSqlDialect
-
unparseSqlIntervalLiteralMssql
private void unparseSqlIntervalLiteralMssql(SqlWriter writer, SqlIntervalLiteral literal, int sign)
-
-