public final class HANAPlatform extends DatabasePlatform
Feature Testing
----------------------
Limitations
----------------
DEFAULT_VARCHAR_SIZEbatchWritingMechanism, 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, shouldCacheAllStatements, shouldCreateIndicesOnForeignKeys, 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, usesStringBindingconversionManager, dataTypesConvertedFromAClass, dataTypesConvertedToAClass, defaultNativeSequenceToTable, defaultSeqenceAtNextValue, defaultSequence, endDelimiter, platformOperators, sequences, sequencesLock, startDelimiter, tableQualifier, timestampQuery| Constructor and Description |
|---|
HANAPlatform() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
appendCalendar(java.util.Calendar calendar,
java.io.Writer writer) |
protected void |
appendDate(java.sql.Date date,
java.io.Writer writer) |
protected void |
appendTime(java.sql.Time time,
java.io.Writer writer) |
protected void |
appendTimestamp(java.sql.Timestamp timestamp,
java.io.Writer writer) |
protected java.util.Hashtable |
buildFieldTypes() |
ValueReadQuery |
buildSelectQueryForSequenceObject(java.lang.String sequenceName,
java.lang.Integer size) |
boolean |
canBatchWriteWithOptimisticLocking(org.eclipse.persistence.internal.databaseaccess.DatabaseCall call) |
int |
computeMaxRowsForSQL(int firstResultIndex,
int maxResults) |
static ExpressionOperator |
createLocate2Operator()
INTERNAL: Build locate operator with 3 params i.e.
|
static ExpressionOperator |
createLocateOperator()
INTERNAL: Build locate operator i.e.
|
int |
executeBatch(java.sql.Statement statement,
boolean isStatementPrepared) |
protected java.lang.String |
getCreateTempTableSqlPrefix() |
java.lang.String |
getInputProcedureToken()
Used for stored procedure creation: Prefix for INPUT parameters.
|
int |
getMaxFieldNameSize() |
java.lang.String |
getOutputProcedureToken()
This method is used to print the output parameter token when stored procedures are called
|
java.lang.String |
getProcedureCallHeader() |
java.lang.String |
getProcedureCallTail()
Used for sp calls.
|
org.eclipse.persistence.internal.helper.DatabaseTable |
getTempTableForTable(org.eclipse.persistence.internal.helper.DatabaseTable table) |
protected void |
initializePlatformOperators() |
boolean |
isForUpdateCompatibleWithDistinct() |
boolean |
isHANA() |
protected void |
printFieldTypeSize(java.io.Writer writer,
FieldDefinition field,
org.eclipse.persistence.internal.databaseaccess.FieldTypeDefinition fieldType) |
void |
printSQLSelectStatement(org.eclipse.persistence.internal.databaseaccess.DatabaseCall call,
org.eclipse.persistence.internal.expressions.ExpressionSQLPrinter printer,
org.eclipse.persistence.internal.expressions.SQLSelectStatement statement) |
boolean |
requiresProcedureCallOuputToken() |
boolean |
requiresUniqueConstraintCreationOnTableCreate() |
boolean |
shouldAlwaysUseTempStorageForModifyAll() |
boolean |
shouldBindLiterals() |
boolean |
shouldOptimizeDataConversion() |
boolean |
shouldPrintOuterJoinInWhereClause() |
boolean |
shouldPrintStoredProcedureArgumentNameInCall()
INTERNAL: Should the variable name of a stored procedure call be printed as part of the
procedure call e.g.
|
protected boolean |
shouldTempTableSpecifyPrimaryKeys() |
boolean |
shouldUseJDBCOuterJoinSyntax() |
boolean |
supportsForeignKeyConstraints() |
boolean |
supportsGlobalTempTables() |
boolean |
supportsIndividualTableLocking() |
boolean |
supportsLocalTempTables() |
boolean |
supportsNativeSequenceNumbers() |
boolean |
supportsSequenceObjects() |
boolean |
supportsStoredFunctions() |
boolean |
usesStringBinding() |
void |
writeAddColumnClause(java.io.Writer writer,
org.eclipse.persistence.internal.sessions.AbstractSession session,
TableDefinition table,
FieldDefinition field) |
addBatch, addStructConverter, allowsSizeInProcedureArguments, appendBoolean, appendByteArray, appendLiteralToCall, appendLiteralToCallWithBinding, appendNumber, appendParameter, appendParameterInternal, appendString, autoCommit, beginTransaction, buildBatchCriteria, buildBatchCriteriaForComplexId, buildCallWithReturning, buildClassTypes, buildCreateIndex, buildCreateIndex, buildDropIndex, buildDropIndex, buildProcedureCallString, buildSequenceObjectAlterIncrementWriter, buildSequenceObjectCreationWriter, buildSequenceObjectDeletionWriter, canBuildCallWithReturning, commitTransaction, convertToDatabaseType, copyInto, createArray, createArray, createPlatformDefaultSequence, createStruct, createStruct, dontBindUpdateAllQueryUsingTempTables, executeStoredProcedure, freeTemporaryObject, getAssignmentString, getBatchBeginString, getBatchDelimiterString, getBatchEndString, getBatchRowCountAssignString, getBatchRowCountDeclareString, getBatchRowCountReturnString, getBatchWritingMechanism, getCastSizeForVarcharParameter, getClassTypes, getConnection, getConnectionUserName, getConstraintDeletionString, getCreateDatabaseSchemaString, getCreateTempTableSqlBodyForTable, getCreateTempTableSqlSuffix, getCreateViewString, getCreationInOutputProcedureToken, getCreationOutputProcedureToken, getCursorCode, getCustomModifyValueForCall, getDefaultSequenceTableName, getDriverSupportsNVarChar, 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, getProcedureEndString, getQualifiedName, getQualifiedSequenceTableName, getRefValue, getRefValue, getSelectForUpdateNoWaitString, getSelectForUpdateOfString, getSelectForUpdateString, getSelectForUpdateWaitString, getSequenceCounterFieldName, getSequenceNameFieldName, getSequencePreallocationSize, getSequenceTableName, getStatementCacheSize, getStoredProcedureParameterPrefix, getStoredProcedureTerminationToken, getStringBindingSize, getStructConverters, getTableCreationSuffix, getTransactionIsolation, getTypeConverters, getUniqueConstraintDeletionString, getUseNationalCharacterVaryingTypeForString, 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, printFieldUnique, printStoredFunctionReturnKeyWord, printValuelist, printValuelist, registerOutputParameter, requiresNamedPrimaryKeyConstraints, requiresProcedureBrackets, requiresProcedureCallBrackets, requiresTableInIndexDropDDL, requiresTypeNameToRegisterOutputParameter, retrieveFirstPrimaryKeyOrOne, rollbackTransaction, setBatchWritingMechanism, setCastSizeForVarcharParameter, setClassTypes, setCursorCode, setDriverName, setDriverSupportsNVarChar, setFieldTypes, setIsCastRequired, setMaxBatchWritingSize, setNullFromDatabaseField, setParameterValueInDatabaseCall, setPartitioningCallback, setPingSQL, setPrintInnerJoinInWhereClause, setPrintOuterJoinInWhereClause, setSequenceCounterFieldName, setSequenceNameFieldName, setSequenceTableName, setShouldBindAllParameters, setShouldBindLiterals, setShouldCacheAllStatements, setShouldCreateIndicesOnForeignKeys, setShouldForceFieldNamesToUpperCase, setShouldIgnoreCaseOnFieldComparisons, setShouldOptimizeDataConversion, setShouldTrimStrings, setShouldUseRownumFiltering, setStatementCacheSize, setStoredProcedureTerminationToken, setStringBindingSize, setSupportsAutoCommit, setTableCreationSuffix, setTransactionIsolation, setUseJDBCStoredProcedureSyntax, setUseNationalCharacterVaryingTypeForString, setUsesBatchWriting, setUsesByteArrayBinding, setUsesJDBCBatchWriting, setUsesNativeBatchWriting, setUsesNativeSQL, setUsesStreamsForBinding, setUsesStringBinding, shouldBindAllParameters, shouldCacheAllStatements, shouldCreateIndicesForPrimaryKeys, shouldCreateIndicesOnForeignKeys, shouldCreateIndicesOnUniqueKeys, shouldForceFieldNamesToUpperCase, shouldIgnoreCaseOnFieldComparisons, shouldIgnoreException, shouldPrintAliasForUpdate, shouldPrintConstraintNameAfter, shouldPrintFieldIdentityClause, shouldPrintForUpdateClause, shouldPrintInnerJoinInWhereClause, shouldPrintInOutputTokenBeforeType, shouldPrintInputTokenAtStart, shouldPrintLockingClauseAfterWhereClause, shouldPrintOutputTokenAtStart, shouldPrintOutputTokenBeforeType, shouldPrintStoredProcedureVariablesAfterBeginString, shouldTrimStrings, shouldUseCustomModifyForCall, shouldUseGetSetNString, shouldUseRownumFiltering, supportsANSIInnerJoinSyntax, supportsAutoCommit, supportsAutoConversionToNumericForArithmeticOperations, supportsConnectionUserName, supportsCountDistinctWithMultipleFields, supportsDeleteOnCascade, supportsIndexes, supportsLockingQueriesWithMultipleTables, supportsNestingOuterJoins, supportsOuterJoinsWithBrackets, supportsPrimaryKeyConstraint, supportsTempTables, supportsUniqueColumns, supportsUniqueKeyConstraints, supportsVPD, usesBatchWriting, usesByteArrayBinding, usesJDBCBatchWriting, usesNativeBatchWriting, usesNativeSQL, usesSequenceTable, usesStreamsForBinding, wasFailureCommunicationBased, writeAutoAssignmentSetClause, writeAutoJoinWhereClause, writeCleanUpTempTableSql, writeCreateTempTableSql, writeDeleteFromTargetTableUsingTempTableSql, writeFields, writeFieldsAutoClause, writeFieldsList, writeInsertIntoTableSql, writeJoinWhereClause, writeLOB, writeParameterMarker, writeTableCreationSuffix, writeUpdateOriginalFromTempTableSqladdOperator, addSequence, addSequence, buildNativeCall, buildSelectQueryForIdentity, buildSelectQueryForIdentity, buildSelectQueryForSequenceObject, clone, convertObject, createConnectionCustomizer, getConversionManager, getDataTypesConvertedFrom, getDataTypesConvertedTo, getDefaultNativeSequenceToTable, getDefaultSeqenceAtNextValue, getDefaultSequence, getDefaultSequenceToWrite, getEndDelimiter, getOperator, getPlatformOperators, getSelectSequenceQuery, getSequence, getSequences, getSequencesToWrite, getStartDelimiter, getTableQualifier, getTimestampFromServer, getTimestampQuery, getUpdateSequenceQuery, hasDefaultSequence, initializeDefaultQueries, initIdentitySequences, isAccess, isAttunity, isCloudscape, isDB2, isDBase, isDerby, isFirebird, isH2, isHSQL, isInformix, isMaxDB, isMySQL, isODBC, isOracle, isOracle12, isOracle9, isPervasive, isPointBase, isPostgreSQL, isSQLAnywhere, isSQLServer, isSybase, isSymfoware, isTimesTen, isTimesTen7, removeAllSequences, removeIdentitySequences, removeSequence, sequencesAfterCloneCleanup, setConversionManager, setDefaultNativeSequenceToTable, setDefaultSeqenceAtNextValue, 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()
requiresUniqueConstraintCreationOnTableCreate in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean isForUpdateCompatibleWithDistinct()
isForUpdateCompatibleWithDistinct in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean supportsIndividualTableLocking()
supportsIndividualTableLocking in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformprotected final java.util.Hashtable buildFieldTypes()
buildFieldTypes in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformprotected void printFieldTypeSize(java.io.Writer writer,
FieldDefinition field,
org.eclipse.persistence.internal.databaseaccess.FieldTypeDefinition fieldType)
throws java.io.IOException
printFieldTypeSize in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformjava.io.IOExceptionprotected final void initializePlatformOperators()
initializePlatformOperators in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatformpublic 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)
printSQLSelectStatement in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic int computeMaxRowsForSQL(int firstResultIndex,
int maxResults)
computeMaxRowsForSQL in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean shouldOptimizeDataConversion()
shouldOptimizeDataConversion in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic final boolean supportsNativeSequenceNumbers()
supportsNativeSequenceNumbers in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatformpublic final ValueReadQuery buildSelectQueryForSequenceObject(java.lang.String sequenceName, java.lang.Integer size)
buildSelectQueryForSequenceObject in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatformpublic final boolean supportsGlobalTempTables()
supportsGlobalTempTables in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformprotected final java.lang.String getCreateTempTableSqlPrefix()
getCreateTempTableSqlPrefix in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic org.eclipse.persistence.internal.helper.DatabaseTable getTempTableForTable(org.eclipse.persistence.internal.helper.DatabaseTable table)
getTempTableForTable in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformprotected boolean shouldTempTableSpecifyPrimaryKeys()
shouldTempTableSpecifyPrimaryKeys in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic final int getMaxFieldNameSize()
getMaxFieldNameSize in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic final boolean supportsLocalTempTables()
supportsLocalTempTables in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic final boolean shouldAlwaysUseTempStorageForModifyAll()
shouldAlwaysUseTempStorageForModifyAll in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic final boolean shouldBindLiterals()
shouldBindLiterals in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic final boolean shouldPrintOuterJoinInWhereClause()
shouldPrintOuterJoinInWhereClause in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic final boolean shouldUseJDBCOuterJoinSyntax()
shouldUseJDBCOuterJoinSyntax in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean supportsSequenceObjects()
supportsSequenceObjects in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatformpublic boolean canBatchWriteWithOptimisticLocking(org.eclipse.persistence.internal.databaseaccess.DatabaseCall call)
canBatchWriteWithOptimisticLocking in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic int executeBatch(java.sql.Statement statement,
boolean isStatementPrepared)
throws java.sql.SQLException
executeBatch in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformjava.sql.SQLExceptionpublic boolean supportsForeignKeyConstraints()
supportsForeignKeyConstraints in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic java.lang.String getInputProcedureToken()
getInputProcedureToken in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic java.lang.String getOutputProcedureToken()
getOutputProcedureToken in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic java.lang.String getProcedureCallTail()
getProcedureCallTail in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean shouldPrintStoredProcedureArgumentNameInCall()
shouldPrintStoredProcedureArgumentNameInCall in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean requiresProcedureCallOuputToken()
requiresProcedureCallOuputToken in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean supportsStoredFunctions()
supportsStoredFunctions in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformprotected void appendDate(java.sql.Date date,
java.io.Writer writer)
throws java.io.IOException
appendDate in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformjava.io.IOExceptionprotected void appendTime(java.sql.Time time,
java.io.Writer writer)
throws java.io.IOException
appendTime in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformjava.io.IOExceptionprotected void appendTimestamp(java.sql.Timestamp timestamp,
java.io.Writer writer)
throws java.io.IOException
appendTimestamp in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformjava.io.IOExceptionprotected void appendCalendar(java.util.Calendar calendar,
java.io.Writer writer)
throws java.io.IOException
appendCalendar in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformjava.io.IOExceptionpublic void writeAddColumnClause(java.io.Writer writer,
org.eclipse.persistence.internal.sessions.AbstractSession session,
TableDefinition table,
FieldDefinition field)
throws java.io.IOException
writeAddColumnClause in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformjava.io.IOExceptionpublic java.lang.String getProcedureCallHeader()
getProcedureCallHeader in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform