public final class HANAPlatform extends DatabasePlatform
DEFAULT_VARCHAR_SIZE| Constructor and Description |
|---|
HANAPlatform() |
| Modifier and Type | Method and Description |
|---|---|
ValueReadQuery |
buildSelectQueryForSequenceObject(String sequenceName,
Integer size)
INTERNAL:
Returns query used to read value generated by sequence object (like Oracle sequence).
|
boolean |
canBatchWriteWithOptimisticLocking(org.eclipse.persistence.internal.databaseaccess.DatabaseCall call)
INTERNAL:
Supports Batch Writing with Optimistic Locking.
|
int |
computeMaxRowsForSQL(int firstResultIndex,
int maxResults)
INTERNAL:
Use the JDBC maxResults and firstResultIndex setting to compute a value to use when
limiting the results of a query in SQL.
|
static ExpressionOperator |
createLocate2Operator()
INTERNAL: Build locate operator with 3 params i.e.
|
static ExpressionOperator |
createLocateOperator()
INTERNAL: Build locate operator i.e.
|
int |
executeBatch(Statement statement,
boolean isStatementPrepared)
Internal: This gets called on each batch statement execution
Needs to be implemented so that it returns the number of rows successfully modified
by this statement for optimistic locking purposes.
|
String |
getInputProcedureToken()
Used for stored procedure creation: Prefix for INPUT parameters.
|
int |
getMaxFieldNameSize()
INTERNAL:
returns the maximum number of characters that can be used in a field
name on this platform.
|
String |
getOutputProcedureToken()
This method is used to print the output parameter token when stored procedures are called
|
String |
getProcedureCallTail()
Used for sp calls.
|
org.eclipse.persistence.internal.helper.DatabaseTable |
getTempTableForTable(org.eclipse.persistence.internal.helper.DatabaseTable table)
INTERNAL:
May override this method if the platform support temporary tables.
|
boolean |
isForUpdateCompatibleWithDistinct()
INTERNAL:
Indicates whether SELECT DISTINCT ...
|
boolean |
isHANA() |
void |
printSQLSelectStatement(org.eclipse.persistence.internal.databaseaccess.DatabaseCall call,
org.eclipse.persistence.internal.expressions.ExpressionSQLPrinter printer,
org.eclipse.persistence.internal.expressions.SQLSelectStatement statement)
INTERNAL:
Print the SQL representation of the statement on a stream, storing the fields
in the DatabaseCall.
|
boolean |
requiresProcedureCallOuputToken()
Used for sp calls.
|
boolean |
requiresUniqueConstraintCreationOnTableCreate()
Used for table creation.
|
boolean |
shouldAlwaysUseTempStorageForModifyAll()
INTERNAL:
That method affects UpdateAllQuery and DeleteAllQuery execution.
|
boolean |
shouldBindLiterals()
PUBLIC:
Allows platform to choose whether to bind literals in DatabaseCalls or not.
|
boolean |
shouldOptimizeDataConversion()
Return if our driver level data conversion optimization is enabled.
|
boolean |
shouldPrintOuterJoinInWhereClause()
Some database require outer joins to be given in the where clause, others require it in the from clause.
|
boolean |
shouldPrintStoredProcedureArgumentNameInCall()
INTERNAL: Should the variable name of a stored procedure call be printed as part of the
procedure call e.g.
|
boolean |
shouldUseJDBCOuterJoinSyntax()
JDBC defines and outer join syntax, many drivers do not support this.
|
boolean |
supportsForeignKeyConstraints() |
boolean |
supportsGlobalTempTables()
INTERNAL:
Indicates whether the platform supports global temporary tables.
|
boolean |
supportsIndividualTableLocking()
INTERNAL:
Indicates whether locking clause could be selectively applied only to some tables in a ReadQuery.
|
boolean |
supportsLocalTempTables()
INTERNAL:
Indicates whether the platform supports local temporary tables.
|
boolean |
supportsNativeSequenceNumbers() |
boolean |
supportsSequenceObjects()
INTERNAL:
Indicates whether the platform supports sequence objects.
|
boolean |
supportsStoredFunctions() |
boolean |
usesStringBinding() |
void |
writeAddColumnClause(Writer writer,
org.eclipse.persistence.internal.sessions.AbstractSession session,
TableDefinition table,
FieldDefinition field)
INTERNAL:
May need to override this method if the platform supports ALTER TABLE ADD <column>
and the generated sql doesn't work.
|
addBatch, addStructConverter, allowsSizeInProcedureArguments, appendLiteralToCall, appendParameter, appendParameterInternal, autoCommit, beginTransaction, buildBatchCriteria, buildBatchCriteriaForComplexId, buildCallWithReturning, buildCreateIndex, buildCreateIndex, buildDropIndex, buildDropIndex, buildProcedureCallString, buildSequenceObjectAlterIncrementWriter, buildSequenceObjectCreationWriter, buildSequenceObjectDeletionWriter, canBuildCallWithReturning, commitTransaction, convertToDatabaseType, copyInto, createArray, createArray, createStruct, createStruct, dontBindUpdateAllQueryUsingTempTables, executeStoredProcedure, freeTemporaryObject, getAssignmentString, getBatchBeginString, getBatchDelimiterString, getBatchEndString, getBatchRowCountAssignString, getBatchRowCountDeclareString, getBatchRowCountReturnString, getBatchWritingMechanism, getCastSizeForVarcharParameter, getClassTypes, getConnection, getConstraintDeletionString, getCreateDatabaseSchemaString, getCreateViewString, getCreationInOutputProcedureToken, getCreationOutputProcedureToken, getCursorCode, getCustomModifyValueForCall, getDefaultSequenceTableName, getDropCascadeString, getDropDatabaseSchemaString, getFieldTypeDefinition, getFieldTypes, getFunctionCallHeader, getIdentifierQuoteCharacter, getIndexNamePrefix, getInOutputProcedureToken, getJDBCOuterJoinString, getJDBCType, getJDBCType, getJDBCTypeForSetNull, getJdbcTypeName, getMaxBatchWritingSize, getMaxForeignKeyNameSize, getMaxIndexNameSize, getMaxUniqueKeyNameSize, getNoWaitString, getObjectFromResultSet, getPartitioningCallback, getPingSQL, getProcedureArgumentSetter, getProcedureArgumentString, getProcedureAsString, getProcedureBeginString, getProcedureCallHeader, getProcedureEndString, getQualifiedName, getQualifiedSequenceTableName, getRefValue, getRefValue, getSelectForUpdateNoWaitString, getSelectForUpdateOfString, getSelectForUpdateString, getSelectForUpdateWaitString, getSequenceCounterFieldName, getSequenceNameFieldName, getSequencePreallocationSize, getSequenceTableName, getStatementCacheSize, getStoredProcedureParameterPrefix, getStoredProcedureTerminationToken, getStringBindingSize, getStructConverters, getTableCreationSuffix, getTransactionIsolation, getTypeConverters, getUniqueConstraintDeletionString, getVPDClearIdentifierQuery, getVPDCreationFunctionString, getVPDCreationPolicyString, getVPDDeletionString, getVPDSetIdentifierQuery, hasPartitioningCallback, initialize, initializeConnectionData, isAlterSequenceObjectSupported, isCastRequired, isDynamicSQLRequiredForFunctions, isInformixOuterJoin, isJDBCExecuteCompliant, isLobCompatibleWithDistinct, isLockTimeoutException, isNullAllowedInSelectClause, isOutputAllowWithResultSet, isRowCountOutputParameterRequired, isXDBDocument, maximumNumericValues, minimumNumericValues, minimumTimeIncrement, prepareBatchStatement, printFieldIdentityClause, printFieldNotNullClause, printFieldNullClause, printFieldTypeSize, printFieldUnique, printStoredFunctionReturnKeyWord, printValuelist, printValuelist, registerOutputParameter, requiresNamedPrimaryKeyConstraints, requiresProcedureBrackets, requiresProcedureCallBrackets, requiresTableInIndexDropDDL, requiresTypeNameToRegisterOutputParameter, retrieveFirstPrimaryKeyOrOne, rollbackTransaction, setBatchWritingMechanism, setCastSizeForVarcharParameter, setCursorCode, setDriverName, setIsCastRequired, setMaxBatchWritingSize, setParameterValueInDatabaseCall, setPartitioningCallback, setPingSQL, setPrintInnerJoinInWhereClause, setPrintOuterJoinInWhereClause, setSequenceCounterFieldName, setSequenceNameFieldName, setSequenceTableName, setShouldBindAllParameters, setShouldBindLiterals, setShouldCacheAllStatements, setShouldCreateIndicesOnForeignKeys, setShouldForceFieldNamesToUpperCase, setShouldIgnoreCaseOnFieldComparisons, setShouldOptimizeDataConversion, setShouldTrimStrings, setShouldUseRownumFiltering, setStatementCacheSize, setStringBindingSize, setSupportsAutoCommit, setTableCreationSuffix, setTransactionIsolation, setUseJDBCStoredProcedureSyntax, setUsesBatchWriting, setUsesByteArrayBinding, setUsesJDBCBatchWriting, setUsesNativeBatchWriting, setUsesNativeSQL, setUsesStreamsForBinding, setUsesStringBinding, shouldBindAllParameters, shouldCacheAllStatements, shouldCreateIndicesForPrimaryKeys, shouldCreateIndicesOnForeignKeys, shouldCreateIndicesOnUniqueKeys, shouldForceFieldNamesToUpperCase, shouldIgnoreCaseOnFieldComparisons, shouldIgnoreException, shouldPrintAliasForUpdate, shouldPrintConstraintNameAfter, shouldPrintFieldIdentityClause, shouldPrintInnerJoinInWhereClause, shouldPrintInOutputTokenBeforeType, shouldPrintInputTokenAtStart, shouldPrintLockingClauseAfterWhereClause, shouldPrintOutputTokenAtStart, shouldPrintOutputTokenBeforeType, shouldPrintStoredProcedureVariablesAfterBeginString, shouldTrimStrings, shouldUseCustomModifyForCall, shouldUseRownumFiltering, supportsANSIInnerJoinSyntax, supportsAutoCommit, supportsAutoConversionToNumericForArithmeticOperations, supportsCountDistinctWithMultipleFields, supportsDeleteOnCascade, supportsIndexes, supportsLockingQueriesWithMultipleTables, supportsNestingOuterJoins, supportsOuterJoinsWithBrackets, supportsPrimaryKeyConstraint, supportsTempTables, supportsUniqueColumns, supportsUniqueKeyConstraints, supportsVPD, usesBatchWriting, usesByteArrayBinding, usesJDBCBatchWriting, usesNativeBatchWriting, usesNativeSQL, usesSequenceTable, usesStreamsForBinding, wasFailureCommunicationBased, writeCleanUpTempTableSql, writeCreateTempTableSql, writeDeleteFromTargetTableUsingTempTableSql, writeInsertIntoTableSql, writeLOB, writeParameterMarker, writeTableCreationSuffix, writeUpdateOriginalFromTempTableSqladdSequence, addSequence, buildNativeCall, buildSelectQueryForIdentity, buildSelectQueryForIdentity, buildSelectQueryForSequenceObject, clone, convertObject, createConnectionCustomizer, getConversionManager, getDataTypesConvertedFrom, getDataTypesConvertedTo, getDefaultNativeSequenceToTable, getDefaultSequence, getDefaultSequenceToWrite, getEndDelimiter, getOperator, getPlatformOperators, getSelectSequenceQuery, getSequence, getSequences, getSequencesToWrite, getStartDelimiter, getTableQualifier, getTimestampFromServer, getTimestampQuery, getUpdateSequenceQuery, hasDefaultSequence, initializeDefaultQueries, isAccess, isAttunity, isCloudscape, isDB2, isDBase, isDerby, isFirebird, isH2, isHSQL, isInformix, isMaxDB, isMySQL, isODBC, isOracle, isOracle9, isPervasive, isPointBase, isPostgreSQL, isSQLAnywhere, isSQLServer, isSybase, isSymfoware, isTimesTen, isTimesTen7, removeAllSequences, removeSequence, setConversionManager, setDefaultNativeSequenceToTable, setDefaultSequence, setEndDelimiter, setSelectSequenceNumberQuery, setSequencePreallocationSize, setSequences, setStartDelimiter, setTableQualifier, setTimestampQuery, setUpdateSequenceQuery, shouldNativeSequenceUseTransaction, shouldPrepare, shouldSelectDistinctIncludeOrderBy, shouldSelectIncludeOrderBy, supportsIdentity, toString, usesPlatformDefaultSequencepublic boolean isHANA()
isHANA in interface org.eclipse.persistence.internal.databaseaccess.PlatformisHANA in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatformpublic boolean usesStringBinding()
usesStringBinding in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean requiresUniqueConstraintCreationOnTableCreate()
org.eclipse.persistence.internal.databaseaccess.DatabasePlatformrequiresUniqueConstraintCreationOnTableCreate in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean isForUpdateCompatibleWithDistinct()
org.eclipse.persistence.internal.databaseaccess.DatabasePlatformisForUpdateCompatibleWithDistinct in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean supportsIndividualTableLocking()
org.eclipse.persistence.internal.databaseaccess.DatabasePlatformsupportsIndividualTableLocking in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic static ExpressionOperator createLocateOperator()
public static ExpressionOperator createLocate2Operator()
public void printSQLSelectStatement(org.eclipse.persistence.internal.databaseaccess.DatabaseCall call,
org.eclipse.persistence.internal.expressions.ExpressionSQLPrinter printer,
org.eclipse.persistence.internal.expressions.SQLSelectStatement statement)
org.eclipse.persistence.internal.databaseaccess.DatabasePlatformprintSQLSelectStatement in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic int computeMaxRowsForSQL(int firstResultIndex,
int maxResults)
org.eclipse.persistence.internal.databaseaccess.DatabasePlatformcomputeMaxRowsForSQL in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformMySQLPlatformpublic boolean shouldOptimizeDataConversion()
org.eclipse.persistence.internal.databaseaccess.DatabasePlatformshouldOptimizeDataConversion in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic final boolean supportsNativeSequenceNumbers()
supportsNativeSequenceNumbers in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatformpublic final ValueReadQuery buildSelectQueryForSequenceObject(String sequenceName, Integer size)
org.eclipse.persistence.internal.databaseaccess.DatasourcePlatformbuildSelectQueryForSequenceObject in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatformpublic final boolean supportsGlobalTempTables()
org.eclipse.persistence.internal.databaseaccess.DatabasePlatformsupportsGlobalTempTables in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic org.eclipse.persistence.internal.helper.DatabaseTable getTempTableForTable(org.eclipse.persistence.internal.helper.DatabaseTable table)
org.eclipse.persistence.internal.databaseaccess.DatabasePlatformgetTempTableForTable in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic final int getMaxFieldNameSize()
org.eclipse.persistence.internal.databaseaccess.DatabasePlatformgetMaxFieldNameSize in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic final boolean supportsLocalTempTables()
org.eclipse.persistence.internal.databaseaccess.DatabasePlatformsupportsLocalTempTables in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic final boolean shouldAlwaysUseTempStorageForModifyAll()
org.eclipse.persistence.internal.databaseaccess.DatabasePlatformshouldAlwaysUseTempStorageForModifyAll in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic final boolean shouldBindLiterals()
org.eclipse.persistence.internal.databaseaccess.DatabasePlatformshouldBindLiterals in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic final boolean shouldPrintOuterJoinInWhereClause()
org.eclipse.persistence.internal.databaseaccess.DatabasePlatformshouldPrintOuterJoinInWhereClause in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic final boolean shouldUseJDBCOuterJoinSyntax()
org.eclipse.persistence.internal.databaseaccess.DatabasePlatformshouldUseJDBCOuterJoinSyntax in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean supportsSequenceObjects()
org.eclipse.persistence.internal.databaseaccess.DatasourcePlatformsupportsSequenceObjects in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatformpublic boolean canBatchWriteWithOptimisticLocking(org.eclipse.persistence.internal.databaseaccess.DatabaseCall call)
org.eclipse.persistence.internal.databaseaccess.DatabasePlatformcanBatchWriteWithOptimisticLocking in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic int executeBatch(Statement statement, boolean isStatementPrepared) throws SQLException
org.eclipse.persistence.internal.databaseaccess.DatabasePlatformexecuteBatch in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformisStatementPrepared - - flag is set to true if this statement is preparedSQLExceptionpublic boolean supportsForeignKeyConstraints()
supportsForeignKeyConstraints in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic String getInputProcedureToken()
getInputProcedureToken in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic String getOutputProcedureToken()
getOutputProcedureToken in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic String getProcedureCallTail()
getProcedureCallTail in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean shouldPrintStoredProcedureArgumentNameInCall()
shouldPrintStoredProcedureArgumentNameInCall in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean requiresProcedureCallOuputToken()
org.eclipse.persistence.internal.databaseaccess.DatabasePlatformrequiresProcedureCallOuputToken in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean supportsStoredFunctions()
supportsStoredFunctions in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic void writeAddColumnClause(Writer writer, org.eclipse.persistence.internal.sessions.AbstractSession session, TableDefinition table, FieldDefinition field) throws IOException
org.eclipse.persistence.internal.databaseaccess.DatabasePlatformwriteAddColumnClause in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformIOException