Class TimesTenPlatform
- java.lang.Object
-
- org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
-
- org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
- org.eclipse.persistence.platform.database.DatabasePlatform
-
- org.eclipse.persistence.platform.database.TimesTenPlatform
-
- All Implemented Interfaces:
java.io.Serializable,java.lang.Cloneable,CorePlatform<ConversionManager>,Platform
- Direct Known Subclasses:
TimesTen7Platform
public class TimesTenPlatform extends DatabasePlatform
Database platform for the TimesTen database product.- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class org.eclipse.persistence.platform.database.DatabasePlatform
DEFAULT_VARCHAR_SIZE
-
Fields inherited from class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
batchWritingMechanism, castSizeForVarcharParameter, classTypes, cursorCode, DEFAULT_MAX_BATCH_WRITING_SIZE, DEFAULT_PARAMETERIZED_MAX_BATCH_WRITING_SIZE, driverName, driverSupportsNationalCharacterVarying, fieldTypes, IS_VALID_TIMEOUT, isCastRequired, maxBatchWritingSize, partitioningCallback, pingSQL, printInnerJoinInWhereClause, printOuterJoinInWhereClause, shouldBindAllParameters, shouldBindLiterals, shouldBindPartialParameters, shouldCacheAllStatements, shouldCreateIndicesOnForeignKeys, shouldForceBindAllParameters, shouldForceFieldNamesToUpperCase, shouldIgnoreCaseOnFieldComparisons, shouldOptimizeDataConversion, shouldTrimStrings, statementCacheSize, storedProcedureTerminationToken, stringBindingSize, structConverters, supportsAutoCommit, tableCreationSuffix, transactionIsolation, typeConverters, Types_NCLOB, Types_SQLXML, useJDBCStoredProcedureSyntax, useNationalCharacterVarying, useRownumFiltering, usesBatchWriting, usesByteArrayBinding, usesJDBCBatchWriting, usesNativeBatchWriting, usesNativeSQL, usesStreamsForBinding, usesStringBinding
-
Fields inherited from class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
conversionManager, dataTypesConvertedFromAClass, dataTypesConvertedToAClass, defaultNativeSequenceToTable, defaultSeqenceAtNextValue, defaultSequence, endDelimiter, platformOperators, sequences, sequencesLock, startDelimiter, supportsReturnGeneratedKeys, tableQualifier, timestampQuery
-
-
Constructor Summary
Constructors Constructor Description TimesTenPlatform()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidappendByteArray(byte[] bytes, java.io.Writer writer)If using native SQL then print a byte[] literally as a hex string otherwise use ODBC format as provided in DatabasePlatform.protected voidappendCalendar(java.util.Calendar calendar, java.io.Writer writer)Appends an TimesTen specific Timestamp, if usesNativeSQL is true otherwise use the ODBC format.protected voidappendDate(java.sql.Date date, java.io.Writer writer)Appends an TimesTen specific date if usesNativeSQL is true otherwise use the ODBC format.protected voidappendTime(java.sql.Time time, java.io.Writer writer)Appends an TimesTen specific time if usesNativeSQL is true otherwise use the ODBC format.protected voidappendTimestamp(java.sql.Timestamp timestamp, java.io.Writer writer)Appends an TimesTen specific Timestamp, if usesNativeSQL is true otherwise use the ODBC format.protected java.util.HashtablebuildFieldTypes()Return the mapping of class types to database types for the schema framework.ValueReadQuerybuildSelectQueryForSequenceObject(java.lang.String qualifiedSeqName, java.lang.Integer size)INTERNAL: Produce a DataReadQuery which updates(!) the sequence number in the db and returns it.java.lang.StringgetCreateViewString()INTERNAL: Used for view creation.java.lang.StringgetSelectForUpdateString()INTERNAL: Used for pessimistic locking.ValueReadQuerygetTimestampQuery()PUBLIC: TimesTen uses the Oracle syntax for getting the current timestamp.protected voidinitializePlatformOperators()Initialize any platform-specific operatorsbooleanisTimesTen()protected ExpressionOperatoroperatorOuterJoin()TimesTen uses the Oracle where clause style outer join.voidsetSupportsForeignKeyConstraints(boolean supportsForeignKeyConstraints)booleanshouldPrintOuterJoinInWhereClause()Some database require outer joins to be given in the where clause, others require it in the from clause.booleansupportsForeignKeyConstraints()booleansupportsSequenceObjects()INTERNAL: Indicates whether the platform supports sequence objects.voidwriteParameterMarker(java.io.Writer writer, ParameterExpression parameter, AbstractRecord record, DatabaseCall call)INTERNAL: TimesTen and requires cast around parameter markers if both operands of certain operators are parameter markers This method generates CAST for parameter markers whose type is correctly identified by the query compiler.-
Methods inherited from class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
addBatch, addStructConverter, allowBindingForSelectClause, allowsSizeInProcedureArguments, appendBoolean, appendLiteralToCall, appendLiteralToCallWithBinding, appendNumber, appendParameter, appendParameterInternal, appendString, autoCommit, beginTransaction, buildBatchCriteria, buildBatchCriteriaForComplexId, buildCallWithReturning, buildClassTypes, buildCreateIndex, buildCreateIndex, buildDropIndex, buildDropIndex, buildProcedureCallString, buildSequenceObjectAlterIncrementWriter, buildSequenceObjectCreationWriter, buildSequenceObjectDeletionWriter, canBatchWriteWithOptimisticLocking, canBuildCallWithReturning, checkTableExists, commitTransaction, computeMaxRowsForSQL, convertToDatabaseType, copyInto, createArray, createArray, createPlatformDefaultSequence, createStruct, createStruct, createStruct, dontBindUpdateAllQueryUsingTempTables, executeBatch, executeStoredProcedure, freeTemporaryObject, getAssignmentString, getBatchBeginString, getBatchDelimiterString, getBatchEndString, getBatchRowCountAssignString, getBatchRowCountDeclareString, getBatchRowCountReturnString, getBatchWritingMechanism, getCastSizeForVarcharParameter, getClassTypes, getConnection, getConnectionUserName, getConstraintDeletionString, getCreateDatabaseSchemaString, getCreateTempTableSqlBodyForTable, getCreateTempTableSqlPrefix, getCreateTempTableSqlSuffix, getCreationInOutputProcedureToken, getCreationOutputProcedureToken, getCursorCode, getCustomModifyValueForCall, getDefaultSequenceTableName, getDriverSupportsNVarChar, getDropCascadeString, getDropDatabaseSchemaString, getFieldTypeDefinition, getFieldTypes, getFunctionCallHeader, getIdentifierQuoteCharacter, getIndexNamePrefix, getInOutputProcedureToken, getInputProcedureToken, getJDBCOuterJoinString, getJDBCType, getJDBCType, getJDBCTypeForSetNull, getJdbcTypeName, getMaxBatchWritingSize, getMaxFieldNameSize, getMaxForeignKeyNameSize, getMaxIndexNameSize, getMaxUniqueKeyNameSize, getNoWaitString, getObjectFromResultSet, getOutputProcedureToken, getParameterValueFromDatabaseCall, getParameterValueFromDatabaseCall, getPartitioningCallback, getPingSQL, getProcedureArgument, getProcedureArgument, getProcedureArgumentString, getProcedureAsString, getProcedureBeginString, getProcedureCallHeader, getProcedureCallTail, getProcedureEndString, getProcedureOptionList, getQualifiedName, getQualifiedSequenceTableName, getRefValue, getRefValue, getSelectForUpdateNoWaitString, getSelectForUpdateOfString, getSelectForUpdateWaitString, getSequenceCounterFieldName, getSequenceNameFieldName, getSequencePreallocationSize, getSequenceTableName, getStatementCacheSize, getStoredProcedureParameterPrefix, getStoredProcedureTerminationToken, getStringBindingSize, getStructConverters, getTableCreationSuffix, getTableExistsQuery, getTempTableForTable, getTransactionIsolation, getTypeConverters, getUniqueConstraintDeletionString, getUseNationalCharacterVaryingTypeForString, getVPDClearIdentifierQuery, getVPDCreationFunctionString, getVPDCreationPolicyString, getVPDDeletionString, getVPDSetIdentifierQuery, hasPartitioningCallback, initialize, initializeConnectionData, isAlterSequenceObjectSupported, isCastRequired, isDynamicSQLRequiredForFunctions, isForUpdateCompatibleWithDistinct, isInformixOuterJoin, isJDBCExecuteCompliant, isLobCompatibleWithDistinct, isLockTimeoutException, isNullAllowedInSelectClause, isOutputAllowWithResultSet, isRowCountOutputParameterRequired, isXDBDocument, maximumNumericValues, minimumNumericValues, minimumTimeIncrement, prepareBatchStatement, printFieldIdentityClause, printFieldNotNullClause, printFieldNullClause, printFieldTypeSize, printFieldTypeSize, printFieldUnique, printFieldUnique, printSQLSelectStatement, printStoredFunctionReturnKeyWord, printValuelist, printValuelist, registerOutputParameter, registerOutputParameter, registerOutputParameter, registerOutputParameter, requiresNamedPrimaryKeyConstraints, requiresProcedureBrackets, requiresProcedureCallBrackets, requiresProcedureCallOuputToken, requiresTableInIndexDropDDL, requiresTypeNameToRegisterOutputParameter, requiresUniqueConstraintCreationOnTableCreate, retrieveFirstPrimaryKeyOrOne, rollbackTransaction, setBatchWritingMechanism, setCastSizeForVarcharParameter, setClassTypes, setCursorCode, setDriverName, setDriverSupportsNVarChar, setFieldTypes, setIsCastRequired, setMaxBatchWritingSize, setNullFromDatabaseField, setNullFromDatabaseField, setParameterValueInDatabaseCall, setParameterValueInDatabaseCall, setPartitioningCallback, setPingSQL, setPrintInnerJoinInWhereClause, setPrintOuterJoinInWhereClause, setSequenceCounterFieldName, setSequenceNameFieldName, setSequenceTableName, setShouldBindAllParameters, setShouldBindLiterals, setShouldBindPartialParameters, setShouldCacheAllStatements, setShouldCreateIndicesOnForeignKeys, setShouldForceBindAllParameters, setShouldForceFieldNamesToUpperCase, setShouldIgnoreCaseOnFieldComparisons, setShouldOptimizeDataConversion, setShouldTrimStrings, setShouldUseRownumFiltering, setStatementCacheSize, setStoredProcedureTerminationToken, setStringBindingSize, setSupportsAutoCommit, setTableCreationSuffix, setTransactionIsolation, setUseJDBCStoredProcedureSyntax, setUseNationalCharacterVaryingTypeForString, setUsesBatchWriting, setUsesByteArrayBinding, setUsesJDBCBatchWriting, setUsesNativeBatchWriting, setUsesNativeSQL, setUsesStreamsForBinding, setUsesStringBinding, shouldAlwaysUseTempStorageForModifyAll, shouldBindAllParameters, shouldBindLiterals, shouldBindPartialParameters, shouldCacheAllStatements, shouldCreateIndicesForPrimaryKeys, shouldCreateIndicesOnForeignKeys, shouldCreateIndicesOnUniqueKeys, shouldForceBindAllParameters, shouldForceFieldNamesToUpperCase, shouldIgnoreCaseOnFieldComparisons, shouldIgnoreException, shouldOptimizeDataConversion, shouldPrintAliasForUpdate, shouldPrintConstraintNameAfter, shouldPrintFieldIdentityClause, shouldPrintForUpdateClause, shouldPrintInnerJoinInWhereClause, shouldPrintInOutputTokenBeforeType, shouldPrintInputTokenAtStart, shouldPrintLockingClauseAfterWhereClause, shouldPrintOutputTokenAtStart, shouldPrintOutputTokenBeforeType, shouldPrintStoredProcedureArgumentNameInCall, shouldPrintStoredProcedureVariablesAfterBeginString, shouldTempTableSpecifyPrimaryKeys, shouldTrimStrings, shouldUseCustomModifyForCall, shouldUseGetSetNString, shouldUseJDBCOuterJoinSyntax, shouldUseRownumFiltering, supportsANSIInnerJoinSyntax, supportsAutoCommit, supportsAutoConversionToNumericForArithmeticOperations, supportsConnectionUserName, supportsCountDistinctWithMultipleFields, supportsDeleteOnCascade, supportsGlobalTempTables, supportsIndexes, supportsIndividualTableLocking, supportsLocalTempTables, supportsLockingQueriesWithMultipleTables, supportsNestingOuterJoins, supportsOrderByParameters, supportsOuterJoinsWithBrackets, supportsPrimaryKeyConstraint, supportsStoredFunctions, supportsTempTables, supportsUniqueColumns, supportsUniqueKeyConstraints, supportsVPD, supportsWaitForUpdate, usesBatchWriting, usesByteArrayBinding, usesJDBCBatchWriting, usesNativeBatchWriting, usesNativeSQL, usesSequenceTable, usesStreamsForBinding, usesStringBinding, wasFailureCommunicationBased, writeAddColumnClause, writeAutoAssignmentSetClause, writeAutoJoinWhereClause, writeCleanUpTempTableSql, writeCreateTempTableSql, writeDeleteFromTargetTableUsingTempTableSql, writeFields, writeFieldsAutoClause, writeFieldsList, writeInsertIntoTableSql, writeJoinWhereClause, writeLOB, writeTableCreationSuffix, writeUpdateOriginalFromTempTableSql
-
Methods inherited from class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
addOperator, addSequence, addSequence, buildNativeCall, buildSelectQueryForIdentity, buildSelectQueryForIdentity, buildSelectQueryForSequenceObject, clone, convertObject, createConnectionCustomizer, createExpressionFor, getConversionManager, getDataTypesConvertedFrom, getDataTypesConvertedTo, getDefaultNativeSequenceToTable, getDefaultSeqenceAtNextValue, getDefaultSequence, getDefaultSequenceToWrite, getEndDelimiter, getINClauseLimit, getOperator, getPlatformOperators, getSelectSequenceQuery, getSequence, getSequences, getSequencesToWrite, getStartDelimiter, getTableQualifier, getTimestampFromServer, getUpdateSequenceQuery, hasDefaultSequence, initializeDefaultQueries, isAccess, isAttunity, isCloudscape, isDB2, isDB2Z, isDBase, isDerby, isFirebird, isH2, isHANA, isHSQL, isInformix, isMaxDB, isMySQL, isODBC, isOracle, isOracle9, isPervasive, isPointBase, isPostgreSQL, isSQLAnywhere, isSQLServer, isSybase, isSymfoware, isTimesTen7, removeAllSequences, removeSequence, sequencesAfterCloneCleanup, setConversionManager, setDefaultNativeSequenceToTable, setDefaultSeqenceAtNextValue, setDefaultSequence, setEndDelimiter, setSelectSequenceNumberQuery, setSequencePreallocationSize, setSequences, setStartDelimiter, setSupportsReturnGeneratedKeys, setTableQualifier, setTimestampQuery, setUpdateSequenceQuery, shouldNativeSequenceUseTransaction, shouldPrepare, shouldSelectDistinctIncludeOrderBy, shouldSelectIncludeOrderBy, supportsIdentity, supportsNativeSequenceNumbers, supportsReturnGeneratedKeys, toString, usesPlatformDefaultSequence
-
-
-
-
Method Detail
-
appendByteArray
protected void appendByteArray(byte[] bytes, java.io.Writer writer) throws java.io.IOExceptionIf using native SQL then print a byte[] literally as a hex string otherwise use ODBC format as provided in DatabasePlatform.- Overrides:
appendByteArrayin classDatabasePlatform- Throws:
java.io.IOException
-
appendDate
protected void appendDate(java.sql.Date date, java.io.Writer writer) throws java.io.IOExceptionAppends an TimesTen specific date if usesNativeSQL is true otherwise use the ODBC format. Native FORMAT: 'YYYY-MM-DD'- Overrides:
appendDatein classDatabasePlatform- Throws:
java.io.IOException
-
appendTime
protected void appendTime(java.sql.Time time, java.io.Writer writer) throws java.io.IOExceptionAppends an TimesTen specific time if usesNativeSQL is true otherwise use the ODBC format. Native FORMAT: 'HH:MM:SS'.- Overrides:
appendTimein classDatabasePlatform- Throws:
java.io.IOException
-
appendTimestamp
protected void appendTimestamp(java.sql.Timestamp timestamp, java.io.Writer writer) throws java.io.IOExceptionAppends an TimesTen specific Timestamp, if usesNativeSQL is true otherwise use the ODBC format. Native Format: 'YYYY-MM-DD HH:MM:SS'- Overrides:
appendTimestampin classDatabasePlatform- Throws:
java.io.IOException
-
appendCalendar
protected void appendCalendar(java.util.Calendar calendar, java.io.Writer writer) throws java.io.IOExceptionAppends an TimesTen specific Timestamp, if usesNativeSQL is true otherwise use the ODBC format. Native Format: 'YYYY-MM-DD HH:MM:SS'- Overrides:
appendCalendarin classDatabasePlatform- Throws:
java.io.IOException
-
buildFieldTypes
protected java.util.Hashtable buildFieldTypes()
Return the mapping of class types to database types for the schema framework.- Overrides:
buildFieldTypesin classDatabasePlatform
-
buildSelectQueryForSequenceObject
public ValueReadQuery buildSelectQueryForSequenceObject(java.lang.String qualifiedSeqName, java.lang.Integer size)
INTERNAL: Produce a DataReadQuery which updates(!) the sequence number in the db and returns it.- Overrides:
buildSelectQueryForSequenceObjectin classDatasourcePlatform- Parameters:
qualifiedSeqName- known by TimesTen to be a defined sequence
-
getCreateViewString
public java.lang.String getCreateViewString()
INTERNAL: Used for view creation.- Overrides:
getCreateViewStringin classDatabasePlatform
-
getSelectForUpdateString
public java.lang.String getSelectForUpdateString()
INTERNAL: Used for pessimistic locking.- Overrides:
getSelectForUpdateStringin classDatabasePlatform
-
getTimestampQuery
public ValueReadQuery getTimestampQuery()
PUBLIC: TimesTen uses the Oracle syntax for getting the current timestamp.- Specified by:
getTimestampQueryin interfacePlatform- Overrides:
getTimestampQueryin classDatasourcePlatform
-
initializePlatformOperators
protected void initializePlatformOperators()
Initialize any platform-specific operators- Overrides:
initializePlatformOperatorsin classDatasourcePlatform
-
isTimesTen
public boolean isTimesTen()
- Specified by:
isTimesTenin interfacePlatform- Overrides:
isTimesTenin classDatasourcePlatform
-
operatorOuterJoin
protected ExpressionOperator operatorOuterJoin()
TimesTen uses the Oracle where clause style outer join.
-
shouldPrintOuterJoinInWhereClause
public boolean shouldPrintOuterJoinInWhereClause()
Some database require outer joins to be given in the where clause, others require it in the from clause.- Overrides:
shouldPrintOuterJoinInWhereClausein classDatabasePlatform
-
supportsSequenceObjects
public boolean supportsSequenceObjects()
INTERNAL: Indicates whether the platform supports sequence objects.- Overrides:
supportsSequenceObjectsin classDatasourcePlatform
-
supportsForeignKeyConstraints
public boolean supportsForeignKeyConstraints()
- Overrides:
supportsForeignKeyConstraintsin classDatabasePlatform
-
setSupportsForeignKeyConstraints
public void setSupportsForeignKeyConstraints(boolean supportsForeignKeyConstraints)
-
writeParameterMarker
public void writeParameterMarker(java.io.Writer writer, ParameterExpression parameter, AbstractRecord record, DatabaseCall call) throws java.io.IOExceptionINTERNAL: TimesTen and requires cast around parameter markers if both operands of certain operators are parameter markers This method generates CAST for parameter markers whose type is correctly identified by the query compiler. This is not used by default, only if isCastRequired is set to true, by default dynamic SQL is used to avoid the issue in only the required cases.- Overrides:
writeParameterMarkerin classDatabasePlatform- Throws:
java.io.IOException
-
-