Class SQLServerExecutionFactory
- java.lang.Object
-
- org.teiid.translator.ExecutionFactory<DataSource,Connection>
-
- org.teiid.translator.jdbc.JDBCExecutionFactory
-
- org.teiid.translator.jdbc.sybase.BaseSybaseExecutionFactory
-
- org.teiid.translator.jdbc.sybase.SybaseExecutionFactory
-
- org.teiid.translator.jdbc.sqlserver.SQLServerExecutionFactory
-
@Translator(name="sqlserver", description="A translator for Microsoft SQL Server Database") public class SQLServerExecutionFactory extends SybaseExecutionFactory
Updated to assume the use of the DataDirect, 2005 driver, or later.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.teiid.translator.jdbc.sybase.SybaseExecutionFactory
SybaseExecutionFactory.SybaseFormatFunctionModifier
-
Nested classes/interfaces inherited from class org.teiid.translator.jdbc.JDBCExecutionFactory
JDBCExecutionFactory.StructRetrieval
-
Nested classes/interfaces inherited from class org.teiid.translator.ExecutionFactory
ExecutionFactory.Format, ExecutionFactory.NullOrder, ExecutionFactory.SupportedJoinCriteria, ExecutionFactory.TransactionSupport
-
-
Field Summary
Fields Modifier and Type Field Description static VersionELEVEN_0static VersionNINE_0static VersionSEVEN_0static VersionTEN_0static StringV_2000static StringV_2005static StringV_2008static StringV_2012-
Fields inherited from class org.teiid.translator.jdbc.sybase.SybaseExecutionFactory
convertModifier, FIFTEEN_0_2, FIFTEEN_5, formatMap, jtdsDriver, TWELVE_5, TWELVE_5_3
-
Fields inherited from class org.teiid.translator.jdbc.JDBCExecutionFactory
DEFAULT_MAX_DEPENDENT_PREDICATES, DEFAULT_MAX_IN_CRITERIA, DEFAULT_TIME_ZONE, dialect
-
Fields inherited from class org.teiid.translator.ExecutionFactory
DEFAULT_MAX_FROM_GROUPS, DEFAULT_MAX_IN_CRITERIA_SIZE, DEFAULT_MAX_PROJECTED_COLUMNS
-
-
Constructor Summary
Constructors Constructor Description SQLServerExecutionFactory()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description booleanbooleanNullable()protected List<Object>convertDateToString(Function function)protected List<?>convertTimestampToString(Function function)protected JDBCMetadataProcessorcreateMetadataProcessor()Deprecated.StringgetHibernateDialectClassName()MetadataProcessor<Connection>getMetadataProcessor()List<String>getSupportedFunctions()booleanhasTimeType()Return false to indicate that time support should be emulated with timestamps.voidinitCapabilities(Connection connection)booleannullPlusNonNullIsNull()protected voidpopulateDateFormats()voidsetDatabaseVersion(String version)Overridden to allow for year based versionsprotected booleansetFetchSize()voidstart()booleansupportsAggregatesEnhancedNumeric()booleansupportsCommonTableExpressions()booleansupportsConvert(int fromType, int toType)protected booleansupportsCrossJoin()booleansupportsElementaryOlapOperations()booleansupportsExcept()booleansupportsFormatLiteral(String literal, ExecutionFactory.Format format)booleansupportsFunctionsInGroupBy()booleansupportsGroupByRollup()booleansupportsInlineViews()booleansupportsIntersect()booleansupportsLiteralOnlyWithGrouping()booleansupportsOnlyFormatLiterals()booleansupportsRecursiveCommonTableExpressions()booleansupportsRowLimit()booleansupportsRowOffset()booleansupportsSelectWithoutFrom()booleansupportsSubqueryCommonTableExpressions()booleansupportsWindowDistinctAggregates()booleansupportsWindowFrameClause()booleansupportsWindowFunctionCumeDist()booleansupportsWindowFunctionNthValue()booleansupportsWindowFunctionNtile()booleansupportsWindowFunctionPercentRank()booleansupportsWindowOrderByWithAggregates()List<?>translate(LanguageObject obj, ExecutionContext context)Return a List of translated parts (LanguageObjects and Objects), or null if to rely on the default translation.List<?>translateCommand(Command command, ExecutionContext context)SetQueries don't have a concept of TOP, an inline view is needed.List<?>translateLimit(Limit limit, ExecutionContext context)Return a List of translated parts (LanguageObjects and Objects), or null if to rely on the default translation.StringtranslateLiteralDate(Date dateValue)Subclasses should override this method to provide a different sql translation of the literal date value.StringtranslateLiteralTime(Time timeValue)The SQL Server driver maps the time escape to a timestamp/datetime, so use a cast of the string literal instead.StringtranslateLiteralTimestamp(Timestamp timestampValue)Subclasses should override this method to provide a different sql translation of the literal timestamp value.protected booleanusesDatabaseVersion()booleanuseSelectLimit()Returns whether the limit clause is applied to the select clause.booleanuseStreamsForLobs()If streams should be used for Blob/Clob sets onPreparedStatementsbooleanuseWithRollup()-
Methods inherited from class org.teiid.translator.jdbc.sybase.SybaseExecutionFactory
getMaxFromGroups, isJtdsDriver, preserveNullTyping, setFetchSize, setJtdsDriver, translateLiteralBinaryType, useUnicodePrefix
-
Methods inherited from class org.teiid.translator.jdbc.sybase.BaseSybaseExecutionFactory
bindValue, getTemporaryTableName, getTimestampNanoPrecision, retrieveValue, retrieveValue, supportsAggregatesCountBig, supportsBooleanExpressions, useAsInGroupAlias
-
Methods inherited from class org.teiid.translator.jdbc.JDBCExecutionFactory
addSourceComment, afterInitialConnectionObtained, closeConnection, convertObject, createDirectExecution, createProcedureExecution, createResultSetExecution, createTempTable, createUpdateExecution, executeStoredProcedure, formatDateValue, formatDateValue, getCommentFormat, getConnection, getCreateTemporaryTablePostfix, getCreateTemporaryTableString, getCreateTempTableSQL, getDatabaseCalendar, getDatabaseTimeZone, getDatabaseVersion, getDefaultNullOrder, getDefaultSupportedFunctions, getDialect, getFunctionModifiers, getLateralKeyword, getLikeRegexString, getMaxPreparedInsertBatchSize, getMetadata, getRemovePushdownCharacters, getSetOperationString, getSourceComment, getSQLConversionVisitor, getStructRetrieval, getVersion, intializeConnectionAfterCancel, isCharacterType, isDefaultTimeZone, isEnableDependentJoins, isExtendedAscii, isNonAscii, isNonAscii, isNonAsciiFunction, isSourceRequired, isSourceRequiredForCapabilities, isTrimStrings, loadedTemporaryTable, obtainedConnection, registerFunctionModifier, registerSpecificTypeOfOutParameter, replaceElementName, retrieveGeographyValue, retrieveGeographyValue, retrieveGeometryValue, retrieveGeometryValue, setCommentFormat, setDatabaseTimeZone, setDatabaseVersion, setEnableDependentJoins, setMaxPreparedInsertBatchSize, setRemovePushdownCharacters, setStructRetrieval, setTrimStrings, setUseBindingsForDependentJoin, setUseBindVariables, setUseCommentsInSourceQuery, supportsAggregatesAvg, supportsAggregatesCount, supportsAggregatesCountStar, supportsAggregatesDistinct, supportsAggregatesMax, supportsAggregatesMin, supportsAggregatesSum, supportsAliasedTable, supportsBatchedUpdates, supportsBulkUpdate, supportsCompareCriteriaEquals, supportsCompareCriteriaOrdered, supportsCorrelatedSubqueries, supportsDependentJoins, supportsExistsCriteria, supportsFullDependentJoins, supportsGeneratedKeys, supportsGeneratedKeys, supportsGroupBy, supportsHaving, supportsInCriteria, supportsInCriteriaSubquery, supportsInsertWithQueryExpression, supportsIsNullCriteria, supportsLikeCriteria, supportsLikeCriteriaEscapeCharacter, supportsNotCriteria, supportsOrCriteria, supportsOrderByUnrelated, supportsProcedureParameterExpression, supportsQuantifiedCompareCriteriaAll, supportsQuantifiedCompareCriteriaSome, supportsScalarSubqueries, supportsSearchedCaseExpressions, supportsSelectExpression, supportsSelfJoins, supportsSetQueryOrderBy, supportsUnions, tempTableRequiresTransaction, translateGeographyLiteral, translateGeographyParameter, translateGeographySelect, translateGeometryLiteral, translateGeometryParameter, translateGeometrySelect, translateLiteralBoolean, useBindingsForDependentJoin, useBindVariables, useColumnNamesForGeneratedKeys, useCommentsInSourceQuery, useNBindingType, useParensForJoins, useParensForSetQueries, usePreparedStatements, useScientificNotation
-
Methods inherited from class org.teiid.translator.ExecutionFactory
addPushDownFunction, areLobsUsableAfterClose, createExecution, getCacheDirective, getCollationLocale, getConnection, getDirectQueryProcedureName, getExcludedCommonTableExpressionName, getInstance, getLanguageFactory, getMaxDependentInPredicates, getMaxInCriteriaSize, getMaxProjectedColumns, getNativeQueryProcedureName, getPushDownFunctions, getRequiredLikeEscape, getSupportedJoinCriteria, getTransactionSupport, getTypeFacility, isCopyLobs, isForkable, isImmutable, isSourceRequiredForMetadata, isThreadBound, requiresCriteria, returnsSingleUpdateCount, setCollationLocale, setCopyLobs, setDirectQueryProcedureName, setExcludedCommonTableExpressionName, setImmutable, setMaxDependentInPredicates, setMaxInCriteriaSize, setNativeQueryProcedureName, setRequiresCriteria, setSourceRequired, setSourceRequiredForMetadata, setSupportedJoinCriteria, setSupportsDirectQueryProcedure, setSupportsFullOuterJoins, setSupportsInnerJoins, setSupportsNativeQueries, setSupportsOrderBy, setSupportsOuterJoins, setSupportsSelectDistinct, setThreadBound, setTransactionSupport, supportsAdvancedOlapOperations, supportsArrayAgg, supportsArrayType, supportsCompareCriteriaOrderedExclusive, supportsCorrelatedSubqueryLimit, supportsDirectQueryProcedure, supportsFullOuterJoins, supportsGeographyType, supportsGroupByMultipleDistinctAggregates, supportsInnerJoins, supportsIsDistinctCriteria, supportsLateralJoin, supportsLateralJoinCondition, supportsLikeRegex, supportsListAgg, supportsMultipleOpenExecutions, supportsNativeQueries, supportsOnlyCorrelatedSubqueries, supportsOnlyLateralJoinProcedure, supportsOnlyLiteralComparison, supportsOnlySingleTableGroupBy, supportsOnlyTimestampAddLiteral, supportsOrderBy, supportsOrderByNullOrdering, supportsOrderByWithExtendedGrouping, supportsOuterJoins, supportsPartialFiltering, supportsProcedureTable, supportsScalarSubqueryProjection, supportsSelectDistinct, supportsSelectExpressionArrayType, supportsSetQueryLimitOffset, supportsSimilarTo, supportsStringAgg, supportsSubqueryInOn, supportsUpsert, useAnsiJoin
-
-
-
-
Field Detail
-
V_2000
public static final String V_2000
- See Also:
- Constant Field Values
-
V_2005
public static final String V_2005
- See Also:
- Constant Field Values
-
V_2008
public static final String V_2008
- See Also:
- Constant Field Values
-
V_2012
public static final String V_2012
- See Also:
- Constant Field Values
-
SEVEN_0
public static final Version SEVEN_0
-
NINE_0
public static final Version NINE_0
-
TEN_0
public static final Version TEN_0
-
ELEVEN_0
public static final Version ELEVEN_0
-
-
Method Detail
-
start
public void start() throws TranslatorException- Overrides:
startin classSybaseExecutionFactory- Throws:
TranslatorException
-
initCapabilities
public void initCapabilities(Connection connection) throws TranslatorException
- Overrides:
initCapabilitiesin classSybaseExecutionFactory- Throws:
TranslatorException
-
populateDateFormats
protected void populateDateFormats()
- Overrides:
populateDateFormatsin classSybaseExecutionFactory
-
convertDateToString
protected List<Object> convertDateToString(Function function)
- Overrides:
convertDateToStringin classSybaseExecutionFactory
-
convertTimestampToString
protected List<?> convertTimestampToString(Function function)
- Overrides:
convertTimestampToStringin classSybaseExecutionFactory
-
translate
public List<?> translate(LanguageObject obj, ExecutionContext context)
Description copied from class:JDBCExecutionFactoryReturn a List of translated parts (LanguageObjects and Objects), or null if to rely on the default translation. Override with care.- Overrides:
translatein classBaseSybaseExecutionFactory- Returns:
- list of translated parts
-
getSupportedFunctions
public List<String> getSupportedFunctions()
- Overrides:
getSupportedFunctionsin classSybaseExecutionFactory
-
supportsInlineViews
public boolean supportsInlineViews()
- Overrides:
supportsInlineViewsin classSybaseExecutionFactory
-
supportsFunctionsInGroupBy
public boolean supportsFunctionsInGroupBy()
- Overrides:
supportsFunctionsInGroupByin classSybaseExecutionFactory
-
supportsRowLimit
public boolean supportsRowLimit()
- Overrides:
supportsRowLimitin classSybaseExecutionFactory
-
supportsRowOffset
public boolean supportsRowOffset()
- Overrides:
supportsRowOffsetin classExecutionFactory<DataSource,Connection>
-
supportsIntersect
public boolean supportsIntersect()
- Overrides:
supportsIntersectin classExecutionFactory<DataSource,Connection>
-
supportsExcept
public boolean supportsExcept()
- Overrides:
supportsExceptin classExecutionFactory<DataSource,Connection>
-
supportsAggregatesEnhancedNumeric
public boolean supportsAggregatesEnhancedNumeric()
- Overrides:
supportsAggregatesEnhancedNumericin classSybaseExecutionFactory
-
nullPlusNonNullIsNull
public boolean nullPlusNonNullIsNull()
- Overrides:
nullPlusNonNullIsNullin classSybaseExecutionFactory
-
booleanNullable
public boolean booleanNullable()
- Overrides:
booleanNullablein classSybaseExecutionFactory
-
setDatabaseVersion
public void setDatabaseVersion(String version)
Overridden to allow for year based versions- Overrides:
setDatabaseVersionin classJDBCExecutionFactory
-
translateLiteralDate
public String translateLiteralDate(Date dateValue)
Description copied from class:JDBCExecutionFactorySubclasses should override this method to provide a different sql translation of the literal date value. By default, a date literal is represented as:{d '2002-12-31'}- Overrides:
translateLiteralDatein classSybaseExecutionFactory- Parameters:
dateValue- Date value, never null- Returns:
- Translated string
-
hasTimeType
public boolean hasTimeType()
Description copied from class:JDBCExecutionFactoryReturn false to indicate that time support should be emulated with timestamps.- Overrides:
hasTimeTypein classBaseSybaseExecutionFactory- Returns:
- true if database has a time type
-
translateLiteralTime
public String translateLiteralTime(Time timeValue)
The SQL Server driver maps the time escape to a timestamp/datetime, so use a cast of the string literal instead.- Overrides:
translateLiteralTimein classJDBCExecutionFactory- Parameters:
timeValue- Time value, never null- Returns:
- Translated string
-
supportsCommonTableExpressions
public boolean supportsCommonTableExpressions()
- Overrides:
supportsCommonTableExpressionsin classExecutionFactory<DataSource,Connection>
-
supportsSubqueryCommonTableExpressions
public boolean supportsSubqueryCommonTableExpressions()
- Overrides:
supportsSubqueryCommonTableExpressionsin classExecutionFactory<DataSource,Connection>
-
supportsRecursiveCommonTableExpressions
public boolean supportsRecursiveCommonTableExpressions()
- Overrides:
supportsRecursiveCommonTableExpressionsin classExecutionFactory<DataSource,Connection>
-
supportsCrossJoin
protected boolean supportsCrossJoin()
- Overrides:
supportsCrossJoinin classBaseSybaseExecutionFactory
-
supportsElementaryOlapOperations
public boolean supportsElementaryOlapOperations()
- Overrides:
supportsElementaryOlapOperationsin classExecutionFactory<DataSource,Connection>
-
supportsWindowDistinctAggregates
public boolean supportsWindowDistinctAggregates()
- Overrides:
supportsWindowDistinctAggregatesin classExecutionFactory<DataSource,Connection>
-
supportsWindowOrderByWithAggregates
public boolean supportsWindowOrderByWithAggregates()
- Overrides:
supportsWindowOrderByWithAggregatesin classExecutionFactory<DataSource,Connection>
-
supportsFormatLiteral
public boolean supportsFormatLiteral(String literal, ExecutionFactory.Format format)
- Overrides:
supportsFormatLiteralin classSybaseExecutionFactory
-
supportsOnlyFormatLiterals
public boolean supportsOnlyFormatLiterals()
- Overrides:
supportsOnlyFormatLiteralsin classSybaseExecutionFactory
-
setFetchSize
protected boolean setFetchSize()
- Overrides:
setFetchSizein classSybaseExecutionFactory
-
createMetadataProcessor
@Deprecated protected JDBCMetadataProcessor createMetadataProcessor()
Deprecated.- Overrides:
createMetadataProcessorin classJDBCExecutionFactory- See Also:
JDBCExecutionFactory.getMetadataProcessor()
-
getMetadataProcessor
public MetadataProcessor<Connection> getMetadataProcessor()
- Overrides:
getMetadataProcessorin classJDBCExecutionFactory
-
usesDatabaseVersion
protected boolean usesDatabaseVersion()
- Overrides:
usesDatabaseVersionin classSybaseExecutionFactory
-
useStreamsForLobs
public boolean useStreamsForLobs()
Description copied from class:JDBCExecutionFactoryIf streams should be used for Blob/Clob sets onPreparedStatements- Overrides:
useStreamsForLobsin classJDBCExecutionFactory- Returns:
-
supportsSelectWithoutFrom
public boolean supportsSelectWithoutFrom()
- Overrides:
supportsSelectWithoutFromin classSybaseExecutionFactory
-
getHibernateDialectClassName
public String getHibernateDialectClassName()
- Overrides:
getHibernateDialectClassNamein classSybaseExecutionFactory
-
supportsGroupByRollup
public boolean supportsGroupByRollup()
- Overrides:
supportsGroupByRollupin classSybaseExecutionFactory
-
useWithRollup
public boolean useWithRollup()
- Overrides:
useWithRollupin classJDBCExecutionFactory- Returns:
- true if the rollup syntax is WITH ROLLUP
-
supportsConvert
public boolean supportsConvert(int fromType, int toType)- Overrides:
supportsConvertin classExecutionFactory<DataSource,Connection>
-
supportsLiteralOnlyWithGrouping
public boolean supportsLiteralOnlyWithGrouping()
- Overrides:
supportsLiteralOnlyWithGroupingin classSybaseExecutionFactory
-
translateCommand
public List<?> translateCommand(Command command, ExecutionContext context)
Description copied from class:BaseSybaseExecutionFactorySetQueries don't have a concept of TOP, an inline view is needed.- Overrides:
translateCommandin classSybaseExecutionFactory- Returns:
- a list of translated parts
-
translateLimit
public List<?> translateLimit(Limit limit, ExecutionContext context)
Description copied from class:JDBCExecutionFactoryReturn a List of translated parts (LanguageObjects and Objects), or null if to rely on the default translation.- Overrides:
translateLimitin classBaseSybaseExecutionFactory- Returns:
- a list of translated parts
-
useSelectLimit
public boolean useSelectLimit()
Description copied from class:JDBCExecutionFactoryReturns whether the limit clause is applied to the select clause.- Overrides:
useSelectLimitin classBaseSybaseExecutionFactory- Returns:
- true if the limit clause is part of the select
-
translateLiteralTimestamp
public String translateLiteralTimestamp(Timestamp timestampValue)
Description copied from class:JDBCExecutionFactorySubclasses should override this method to provide a different sql translation of the literal timestamp value. By default, a timestamp literal is represented as:{ts '2002-12-31 23:59:59'}. SeeJDBCExecutionFactory.getTimestampNanoPrecision()to control the literal precision.- Overrides:
translateLiteralTimestampin classSybaseExecutionFactory- Parameters:
timestampValue- Timestamp value, never null- Returns:
- Translated string
-
supportsWindowFunctionNtile
public boolean supportsWindowFunctionNtile()
- Overrides:
supportsWindowFunctionNtilein classExecutionFactory<DataSource,Connection>
-
supportsWindowFunctionPercentRank
public boolean supportsWindowFunctionPercentRank()
- Overrides:
supportsWindowFunctionPercentRankin classExecutionFactory<DataSource,Connection>
-
supportsWindowFunctionCumeDist
public boolean supportsWindowFunctionCumeDist()
- Overrides:
supportsWindowFunctionCumeDistin classExecutionFactory<DataSource,Connection>
-
supportsWindowFunctionNthValue
public boolean supportsWindowFunctionNthValue()
- Overrides:
supportsWindowFunctionNthValuein classExecutionFactory<DataSource,Connection>
-
supportsWindowFrameClause
public boolean supportsWindowFrameClause()
- Overrides:
supportsWindowFrameClausein classExecutionFactory<DataSource,Connection>
-
-