public final class HANAPlatform extends DatabasePlatform
Feature Testing
----------------------
Limitations
----------------
DEFAULT_VARCHAR_SIZEDEFAULT_MAX_BATCH_WRITING_SIZE, DEFAULT_PARAMETERIZED_MAX_BATCH_WRITING_SIZE, IS_VALID_TIMEOUT, shouldIgnoreCaseOnFieldComparisons, Types_NCLOB, Types_SQLXML| Constructor and Description |
|---|
HANAPlatform() |
| Modifier and Type | Method and Description |
|---|---|
ValueReadQuery |
buildSelectQueryForSequenceObject(java.lang.String sequenceName,
java.lang.Integer size)
INTERNAL:
Returns query used to read value generated by sequence object (like Oracle sequence).
|
boolean |
canBatchWriteWithOptimisticLocking(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(java.sql.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.
|
java.lang.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.
|
java.lang.String |
getOutputProcedureToken()
This method is used to print the output parameter token when stored procedures are called
|
java.lang.String |
getProcedureCallHeader()
Used for sp calls.
|
java.lang.String |
getProcedureCallTail()
Used for sp calls.
|
DatabaseTable |
getTempTableForTable(DatabaseTable table)
INTERNAL:
May override this method if the platform support temporary tables.
|
boolean |
isForUpdateCompatibleWithDistinct()
INTERNAL:
Indicates whether SELECT DISTINCT ...
|
boolean |
isHANA() |
void |
printSQLSelectStatement(DatabaseCall call,
ExpressionSQLPrinter printer,
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(java.io.Writer writer,
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, getConnectionUserName, getConstraintDeletionString, getCreateDatabaseSchemaString, 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, printStoredFunctionReturnKeyWord, printValuelist, printValuelist, registerOutputParameter, requiresNamedPrimaryKeyConstraints, requiresProcedureBrackets, requiresProcedureCallBrackets, requiresTableInIndexDropDDL, requiresTypeNameToRegisterOutputParameter, retrieveFirstPrimaryKeyOrOne, rollbackTransaction, setBatchWritingMechanism, setCastSizeForVarcharParameter, setCursorCode, setDriverName, setDriverSupportsNVarChar, setIsCastRequired, setMaxBatchWritingSize, 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, 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 PlatformisHANA in class DatasourcePlatformpublic boolean usesStringBinding()
usesStringBinding in class DatabasePlatformpublic boolean requiresUniqueConstraintCreationOnTableCreate()
DatabasePlatformrequiresUniqueConstraintCreationOnTableCreate in class DatabasePlatformpublic boolean isForUpdateCompatibleWithDistinct()
DatabasePlatformisForUpdateCompatibleWithDistinct in class DatabasePlatformpublic boolean supportsIndividualTableLocking()
DatabasePlatformsupportsIndividualTableLocking in class DatabasePlatformpublic static ExpressionOperator createLocateOperator()
public static ExpressionOperator createLocate2Operator()
public void printSQLSelectStatement(DatabaseCall call, ExpressionSQLPrinter printer, SQLSelectStatement statement)
DatabasePlatformprintSQLSelectStatement in class DatabasePlatformpublic int computeMaxRowsForSQL(int firstResultIndex,
int maxResults)
DatabasePlatformcomputeMaxRowsForSQL in class DatabasePlatformMySQLPlatformpublic boolean shouldOptimizeDataConversion()
DatabasePlatformshouldOptimizeDataConversion in class DatabasePlatformpublic final boolean supportsNativeSequenceNumbers()
supportsNativeSequenceNumbers in class DatasourcePlatformpublic final ValueReadQuery buildSelectQueryForSequenceObject(java.lang.String sequenceName, java.lang.Integer size)
DatasourcePlatformbuildSelectQueryForSequenceObject in class DatasourcePlatformpublic final boolean supportsGlobalTempTables()
DatabasePlatformsupportsGlobalTempTables in class DatabasePlatformpublic DatabaseTable getTempTableForTable(DatabaseTable table)
DatabasePlatformgetTempTableForTable in class DatabasePlatformpublic final int getMaxFieldNameSize()
DatabasePlatformgetMaxFieldNameSize in class DatabasePlatformpublic final boolean supportsLocalTempTables()
DatabasePlatformsupportsLocalTempTables in class DatabasePlatformpublic final boolean shouldAlwaysUseTempStorageForModifyAll()
DatabasePlatformshouldAlwaysUseTempStorageForModifyAll in class DatabasePlatformpublic final boolean shouldBindLiterals()
DatabasePlatformshouldBindLiterals in class DatabasePlatformpublic final boolean shouldPrintOuterJoinInWhereClause()
DatabasePlatformshouldPrintOuterJoinInWhereClause in class DatabasePlatformpublic final boolean shouldUseJDBCOuterJoinSyntax()
DatabasePlatformshouldUseJDBCOuterJoinSyntax in class DatabasePlatformpublic boolean supportsSequenceObjects()
DatasourcePlatformsupportsSequenceObjects in class DatasourcePlatformpublic boolean canBatchWriteWithOptimisticLocking(DatabaseCall call)
DatabasePlatformcanBatchWriteWithOptimisticLocking in class DatabasePlatformpublic int executeBatch(java.sql.Statement statement,
boolean isStatementPrepared)
throws java.sql.SQLException
DatabasePlatformexecuteBatch in class DatabasePlatformisStatementPrepared - - flag is set to true if this statement is preparedjava.sql.SQLExceptionpublic boolean supportsForeignKeyConstraints()
supportsForeignKeyConstraints in class DatabasePlatformpublic java.lang.String getInputProcedureToken()
getInputProcedureToken in class DatabasePlatformpublic java.lang.String getOutputProcedureToken()
getOutputProcedureToken in class DatabasePlatformpublic java.lang.String getProcedureCallTail()
getProcedureCallTail in class DatabasePlatformpublic boolean shouldPrintStoredProcedureArgumentNameInCall()
shouldPrintStoredProcedureArgumentNameInCall in class DatabasePlatformpublic boolean requiresProcedureCallOuputToken()
DatabasePlatformrequiresProcedureCallOuputToken in class DatabasePlatformpublic boolean supportsStoredFunctions()
supportsStoredFunctions in class DatabasePlatformpublic void writeAddColumnClause(java.io.Writer writer,
AbstractSession session,
TableDefinition table,
FieldDefinition field)
throws java.io.IOException
DatabasePlatformwriteAddColumnClause in class DatabasePlatformjava.io.IOExceptionpublic java.lang.String getProcedureCallHeader()
DatabasePlatformgetProcedureCallHeader in class DatabasePlatformEclipseLink 2.6.3, "build v20160428-59c81c5" API Reference