Class SQLAnywherePlatform
- 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.SybasePlatform
-
- org.eclipse.persistence.platform.database.SQLAnywherePlatform
-
- All Implemented Interfaces:
java.io.Serializable,java.lang.Cloneable,org.eclipse.persistence.internal.core.databaseaccess.CorePlatform<org.eclipse.persistence.internal.helper.ConversionManager>,org.eclipse.persistence.internal.databaseaccess.Platform
public class SQLAnywherePlatform extends SybasePlatform
Provides SQL Anywhere specific behaviour.- Author:
- Markus KARG (markus-karg@users.sourceforge.net)
- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class org.eclipse.persistence.platform.database.DatabasePlatform
DEFAULT_VARCHAR_SIZE
-
-
Constructor Summary
Constructors Constructor Description SQLAnywherePlatform()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description ValueReadQuerybuildSelectQueryForIdentity()INTERNAL: Build the identity query for native sequencing.static ExpressionOperatorcreateConcatOperator()static ExpressionOperatorcreateCurrentDateOperator()static ExpressionOperatorcreateCurrentTimeOperator()static ExpressionOperatorcreateLocate2Operator()static ExpressionOperatorcreateLocateOperator()java.lang.StringgetBatchBeginString()Used for batch writing and sp defs.java.lang.StringgetBatchDelimiterString()Used for batch writing and sp defs.java.lang.StringgetBatchEndString()Used for batch writing and sp defs.java.lang.StringgetCreationOutputProcedureToken()This method is used to print the required output parameter token for the specific platform.java.lang.StringgetInOutputProcedureToken()This method is used to print the output parameter token when stored procedures are calledjava.lang.StringgetInputProcedureToken()Used for stored procedure creation: Prefix for INPUT parameters.intgetMaxFieldNameSize()INTERNAL: returns the maximum number of characters that can be used in a field name on this platform.java.lang.StringgetOutputProcedureToken()This method is used to print the output parameter token when stored procedures are calledjava.lang.StringgetProcedureArgumentString()Used for sp defs.java.lang.StringgetProcedureAsString()Used for stored procedure defs.java.lang.StringgetProcedureBeginString()Used for stored procedure defs.java.lang.StringgetProcedureCallHeader()Used for sp calls.java.lang.StringgetProcedureEndString()Used for stored procedure defs.java.lang.StringgetStoredProcedureParameterPrefix()org.eclipse.persistence.internal.helper.DatabaseTablegetTempTableForTable(org.eclipse.persistence.internal.helper.DatabaseTable table)Used for sp calls.booleanisSQLAnywhere()booleanisSybase()voidprintFieldIdentityClause(java.io.Writer writer)Append the receiver's field 'identity' constraint clause to a writer.voidprintFieldNullClause(java.io.Writer writer)Append the receiver's field 'NULL' constraint clause to a writer.booleanrequiresProcedureBrackets()Used for stored procedure creation: Some platforms need brackets around arguments declaration even if no arguments exist.booleanrequiresProcedureCallBrackets()USed for sp calls.booleanrequiresTypeNameToRegisterOutputParameter()INTERNAL: Indicates whether the version of CallableStatement.registerOutputParameter method that takes type name should be used.booleanshouldPrintInOutputTokenBeforeType()This is required in the construction of the stored procedures with output parametersbooleanshouldPrintInputTokenAtStart()Used for stored procedure creation: Some platforms want to print prefix for INPUT arguments BEFORE NAME.booleanshouldPrintOutputTokenAtStart()This is required in the construction of the stored procedures with output parametersbooleanshouldPrintOutputTokenBeforeType()This is required in the construction of the stored procedures with output parametersbooleanshouldPrintStoredProcedureArgumentNameInCall()INTERNAL: Should the variable name of a stored procedure call be printed as part of the procedure call e.g.booleanshouldPrintStoredProcedureVariablesAfterBeginString()Used for stored procedure creation: Some platforms declare variables AFTER the procedure body's BEGIN string.booleansupportsDeleteOnCascade()SQL Anywhere does support cascade on delete, unlike Sybase.booleansupportsIdentity()INTERNAL: Indicates whether the platform supports identity.booleansupportsLocalTempTables()INTERNAL: Indicates whether the platform supports local temporary tables.booleansupportsStoredFunctions()-
Methods inherited from class org.eclipse.persistence.platform.database.SybasePlatform
atan2Operator, extractOperator, getCreationInOutputProcedureToken, getJDBCType, getJdbcTypeName, getNativeTableInfo, getProcedureCallTail, getSelectForUpdateString, getTimestampQuery, initializeConnectionData, isOutputAllowWithResultSet, maximumNumericValues, minimumNumericValues, modOperator, registerOutputParameter, requiresProcedureCallOuputToken, shouldPrintLockingClauseAfterWhereClause, shouldUseJDBCOuterJoinSyntax, singleArgumentSubstringOperator, supportsGlobalTempTables, trim2Operator, trimOperator, useJDBCStoredProcedureSyntax, writeUpdateOriginalFromTempTableSql
-
Methods inherited from class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
addBatch, addStructConverter, allowsSizeInProcedureArguments, appendLiteralToCall, appendParameter, appendParameterInternal, autoCommit, beginTransaction, buildBatchCriteria, buildBatchCriteriaForComplexId, buildCallWithReturning, buildCreateIndex, buildCreateIndex, buildDropIndex, buildDropIndex, buildProcedureCallString, buildSequenceObjectAlterIncrementWriter, buildSequenceObjectCreationWriter, buildSequenceObjectDeletionWriter, canBatchWriteWithOptimisticLocking, canBuildCallWithReturning, commitTransaction, computeMaxRowsForSQL, convertToDatabaseType, copyInto, createArray, createArray, createStruct, createStruct, dontBindUpdateAllQueryUsingTempTables, executeBatch, executeStoredProcedure, freeTemporaryObject, getAssignmentString, getBatchRowCountAssignString, getBatchRowCountDeclareString, getBatchRowCountReturnString, getBatchWritingMechanism, getCastSizeForVarcharParameter, getClassTypes, getConnection, getConnectionUserName, getConstraintDeletionString, getCreateDatabaseSchemaString, getCreateViewString, getCursorCode, getCustomModifyValueForCall, getDefaultSequenceTableName, getDriverSupportsNVarChar, getDropCascadeString, getDropDatabaseSchemaString, getFieldTypeDefinition, getFieldTypes, getFunctionCallHeader, getIdentifierQuoteCharacter, getIndexNamePrefix, getJDBCOuterJoinString, getJDBCType, getJDBCTypeForSetNull, getMaxBatchWritingSize, getMaxForeignKeyNameSize, getMaxIndexNameSize, getMaxUniqueKeyNameSize, getNoWaitString, getObjectFromResultSet, getPartitioningCallback, getPingSQL, getProcedureArgumentSetter, getQualifiedName, getQualifiedSequenceTableName, getRefValue, getRefValue, getSelectForUpdateNoWaitString, getSelectForUpdateOfString, getSelectForUpdateWaitString, getSequenceCounterFieldName, getSequenceNameFieldName, getSequencePreallocationSize, getSequenceTableName, getStatementCacheSize, getStoredProcedureTerminationToken, getStringBindingSize, getStructConverters, getTableCreationSuffix, getTransactionIsolation, getTypeConverters, getUniqueConstraintDeletionString, getUseNationalCharacterVaryingTypeForString, getVPDClearIdentifierQuery, getVPDCreationFunctionString, getVPDCreationPolicyString, getVPDDeletionString, getVPDSetIdentifierQuery, hasPartitioningCallback, initialize, isAlterSequenceObjectSupported, isCastRequired, isDynamicSQLRequiredForFunctions, isForUpdateCompatibleWithDistinct, isInformixOuterJoin, isJDBCExecuteCompliant, isLobCompatibleWithDistinct, isLockTimeoutException, isNullAllowedInSelectClause, isRowCountOutputParameterRequired, isXDBDocument, minimumTimeIncrement, prepareBatchStatement, printFieldNotNullClause, printFieldTypeSize, printFieldUnique, printSQLSelectStatement, printStoredFunctionReturnKeyWord, printValuelist, printValuelist, requiresNamedPrimaryKeyConstraints, requiresTableInIndexDropDDL, requiresUniqueConstraintCreationOnTableCreate, 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, shouldAlwaysUseTempStorageForModifyAll, shouldBindAllParameters, shouldBindLiterals, shouldCacheAllStatements, shouldCreateIndicesForPrimaryKeys, shouldCreateIndicesOnForeignKeys, shouldCreateIndicesOnUniqueKeys, shouldForceFieldNamesToUpperCase, shouldIgnoreCaseOnFieldComparisons, shouldIgnoreException, shouldOptimizeDataConversion, shouldPrintAliasForUpdate, shouldPrintConstraintNameAfter, shouldPrintFieldIdentityClause, shouldPrintForUpdateClause, shouldPrintInnerJoinInWhereClause, shouldPrintOuterJoinInWhereClause, shouldTrimStrings, shouldUseCustomModifyForCall, shouldUseGetSetNString, shouldUseRownumFiltering, supportsANSIInnerJoinSyntax, supportsAutoCommit, supportsAutoConversionToNumericForArithmeticOperations, supportsConnectionUserName, supportsCountDistinctWithMultipleFields, supportsForeignKeyConstraints, supportsIndexes, supportsIndividualTableLocking, supportsLockingQueriesWithMultipleTables, supportsNestingOuterJoins, supportsOuterJoinsWithBrackets, supportsPrimaryKeyConstraint, supportsTempTables, supportsUniqueColumns, supportsUniqueKeyConstraints, supportsVPD, usesBatchWriting, usesByteArrayBinding, usesJDBCBatchWriting, usesNativeBatchWriting, usesNativeSQL, usesSequenceTable, usesStreamsForBinding, usesStringBinding, wasFailureCommunicationBased, writeAddColumnClause, writeCleanUpTempTableSql, writeCreateTempTableSql, writeDeleteFromTargetTableUsingTempTableSql, writeInsertIntoTableSql, writeLOB, writeParameterMarker, writeTableCreationSuffix
-
Methods inherited from class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
addSequence, addSequence, buildNativeCall, buildSelectQueryForIdentity, buildSelectQueryForSequenceObject, buildSelectQueryForSequenceObject, clone, convertObject, createConnectionCustomizer, getConversionManager, getDataTypesConvertedFrom, getDataTypesConvertedTo, getDefaultNativeSequenceToTable, getDefaultSequence, getDefaultSequenceToWrite, getEndDelimiter, getOperator, getPlatformOperators, getSelectSequenceQuery, getSequence, getSequences, getSequencesToWrite, getStartDelimiter, getTableQualifier, getTimestampFromServer, getUpdateSequenceQuery, hasDefaultSequence, initializeDefaultQueries, isAccess, isAttunity, isCloudscape, isDB2, isDBase, isDerby, isFirebird, isH2, isHANA, isHSQL, isInformix, isMaxDB, isMySQL, isODBC, isOracle, isOracle9, isPervasive, isPointBase, isPostgreSQL, isSQLServer, isSymfoware, isTimesTen, isTimesTen7, removeAllSequences, removeSequence, setConversionManager, setDefaultNativeSequenceToTable, setDefaultSequence, setEndDelimiter, setSelectSequenceNumberQuery, setSequencePreallocationSize, setSequences, setStartDelimiter, setTableQualifier, setTimestampQuery, setUpdateSequenceQuery, shouldNativeSequenceUseTransaction, shouldPrepare, shouldSelectDistinctIncludeOrderBy, shouldSelectIncludeOrderBy, supportsNativeSequenceNumbers, supportsSequenceObjects, toString, usesPlatformDefaultSequence
-
-
-
-
Method Detail
-
buildSelectQueryForIdentity
public ValueReadQuery buildSelectQueryForIdentity()
INTERNAL: Build the identity query for native sequencing.- Overrides:
buildSelectQueryForIdentityin classSybasePlatform
-
createCurrentDateOperator
public static ExpressionOperator createCurrentDateOperator()
-
createCurrentTimeOperator
public static ExpressionOperator createCurrentTimeOperator()
-
createLocate2Operator
public static ExpressionOperator createLocate2Operator()
-
createConcatOperator
public static ExpressionOperator createConcatOperator()
-
createLocateOperator
public static ExpressionOperator createLocateOperator()
-
getInputProcedureToken
public java.lang.String getInputProcedureToken()
Used for stored procedure creation: Prefix for INPUT parameters. Not required on most platforms.- Overrides:
getInputProcedureTokenin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getInOutputProcedureToken
public java.lang.String getInOutputProcedureToken()
Description copied from class:org.eclipse.persistence.internal.databaseaccess.DatabasePlatformThis method is used to print the output parameter token when stored procedures are called- Overrides:
getInOutputProcedureTokenin classSybasePlatform
-
getCreationOutputProcedureToken
public java.lang.String getCreationOutputProcedureToken()
Description copied from class:org.eclipse.persistence.internal.databaseaccess.DatabasePlatformThis method is used to print the required output parameter token for the specific platform. Used when stored procedures are created.- Overrides:
getCreationOutputProcedureTokenin classSybasePlatform
-
getOutputProcedureToken
public java.lang.String getOutputProcedureToken()
Description copied from class:org.eclipse.persistence.internal.databaseaccess.DatabasePlatformThis method is used to print the output parameter token when stored procedures are called- Overrides:
getOutputProcedureTokenin classSybasePlatform
-
getMaxFieldNameSize
public int getMaxFieldNameSize()
Description copied from class:SybasePlatformINTERNAL: returns the maximum number of characters that can be used in a field name on this platform.- Overrides:
getMaxFieldNameSizein classSybasePlatform
-
getProcedureArgumentString
public java.lang.String getProcedureArgumentString()
Used for sp defs.- Overrides:
getProcedureArgumentStringin classSybasePlatform
-
getStoredProcedureParameterPrefix
public java.lang.String getStoredProcedureParameterPrefix()
- Overrides:
getStoredProcedureParameterPrefixin classSybasePlatform
-
getProcedureAsString
public java.lang.String getProcedureAsString()
Description copied from class:org.eclipse.persistence.internal.databaseaccess.DatabasePlatformUsed for stored procedure defs.- Overrides:
getProcedureAsStringin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getProcedureBeginString
public java.lang.String getProcedureBeginString()
Description copied from class:org.eclipse.persistence.internal.databaseaccess.DatabasePlatformUsed for stored procedure defs.- Overrides:
getProcedureBeginStringin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getProcedureEndString
public java.lang.String getProcedureEndString()
Description copied from class:org.eclipse.persistence.internal.databaseaccess.DatabasePlatformUsed for stored procedure defs.- Overrides:
getProcedureEndStringin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getBatchBeginString
public java.lang.String getBatchBeginString()
Used for batch writing and sp defs.- Overrides:
getBatchBeginStringin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getBatchEndString
public java.lang.String getBatchEndString()
Used for batch writing and sp defs.- Overrides:
getBatchEndStringin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getBatchDelimiterString
public java.lang.String getBatchDelimiterString()
Used for batch writing and sp defs.- Overrides:
getBatchDelimiterStringin classSybasePlatform
-
getProcedureCallHeader
public java.lang.String getProcedureCallHeader()
Used for sp calls.- Overrides:
getProcedureCallHeaderin classSybasePlatform
-
getTempTableForTable
public org.eclipse.persistence.internal.helper.DatabaseTable getTempTableForTable(org.eclipse.persistence.internal.helper.DatabaseTable table)
Used for sp calls.- Overrides:
getTempTableForTablein classSybasePlatform- Returns:
- DatabaseTable temorary table
-
isSQLAnywhere
public boolean isSQLAnywhere()
- Specified by:
isSQLAnywherein interfaceorg.eclipse.persistence.internal.databaseaccess.Platform- Overrides:
isSQLAnywherein classorg.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
-
isSybase
public boolean isSybase()
- Specified by:
isSybasein interfaceorg.eclipse.persistence.internal.databaseaccess.Platform- Overrides:
isSybasein classSybasePlatform
-
requiresProcedureBrackets
public boolean requiresProcedureBrackets()
Description copied from class:org.eclipse.persistence.internal.databaseaccess.DatabasePlatformUsed for stored procedure creation: Some platforms need brackets around arguments declaration even if no arguments exist. Those platform will override this and return true. All other platforms will omit the brackets in this case.- Overrides:
requiresProcedureBracketsin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
requiresProcedureCallBrackets
public boolean requiresProcedureCallBrackets()
Description copied from class:SybasePlatformUSed for sp calls.- Overrides:
requiresProcedureCallBracketsin classSybasePlatform
-
requiresTypeNameToRegisterOutputParameter
public boolean requiresTypeNameToRegisterOutputParameter()
INTERNAL: Indicates whether the version of CallableStatement.registerOutputParameter method that takes type name should be used.- Overrides:
requiresTypeNameToRegisterOutputParameterin classSybasePlatform
-
printFieldIdentityClause
public void printFieldIdentityClause(java.io.Writer writer) throws ValidationExceptionDescription copied from class:SybasePlatformAppend the receiver's field 'identity' constraint clause to a writer.- Overrides:
printFieldIdentityClausein classSybasePlatform- Throws:
ValidationException
-
printFieldNullClause
public void printFieldNullClause(java.io.Writer writer) throws ValidationExceptionDescription copied from class:SybasePlatformAppend the receiver's field 'NULL' constraint clause to a writer.- Overrides:
printFieldNullClausein classSybasePlatform- Throws:
ValidationException
-
shouldPrintInputTokenAtStart
public boolean shouldPrintInputTokenAtStart()
Description copied from class:org.eclipse.persistence.internal.databaseaccess.DatabasePlatformUsed for stored procedure creation: Some platforms want to print prefix for INPUT arguments BEFORE NAME. If wanted, override and return true.- Overrides:
shouldPrintInputTokenAtStartin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
shouldPrintInOutputTokenBeforeType
public boolean shouldPrintInOutputTokenBeforeType()
Description copied from class:org.eclipse.persistence.internal.databaseaccess.DatabasePlatformThis is required in the construction of the stored procedures with output parameters- Overrides:
shouldPrintInOutputTokenBeforeTypein classSybasePlatform
-
shouldPrintOutputTokenAtStart
public boolean shouldPrintOutputTokenAtStart()
Description copied from class:org.eclipse.persistence.internal.databaseaccess.DatabasePlatformThis is required in the construction of the stored procedures with output parameters- Overrides:
shouldPrintOutputTokenAtStartin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
shouldPrintOutputTokenBeforeType
public boolean shouldPrintOutputTokenBeforeType()
Description copied from class:org.eclipse.persistence.internal.databaseaccess.DatabasePlatformThis is required in the construction of the stored procedures with output parameters- Overrides:
shouldPrintOutputTokenBeforeTypein classSybasePlatform
-
shouldPrintStoredProcedureArgumentNameInCall
public boolean shouldPrintStoredProcedureArgumentNameInCall()
Description copied from class:org.eclipse.persistence.internal.databaseaccess.DatabasePlatformINTERNAL: Should the variable name of a stored procedure call be printed as part of the procedure call e.g. EXECUTE PROCEDURE MyStoredProc(myvariable = ?)- Overrides:
shouldPrintStoredProcedureArgumentNameInCallin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
shouldPrintStoredProcedureVariablesAfterBeginString
public boolean shouldPrintStoredProcedureVariablesAfterBeginString()
Description copied from class:org.eclipse.persistence.internal.databaseaccess.DatabasePlatformUsed for stored procedure creation: Some platforms declare variables AFTER the procedure body's BEGIN string. These need to override and return true. All others will print the variable declaration BEFORE the body's BEGIN string.- Overrides:
shouldPrintStoredProcedureVariablesAfterBeginStringin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
supportsIdentity
public boolean supportsIdentity()
Description copied from class:SybasePlatformINTERNAL: Indicates whether the platform supports identity. Sybase does through IDENTITY field types. This method is to be used *ONLY* by sequencing classes- Overrides:
supportsIdentityin classSybasePlatform
-
supportsLocalTempTables
public boolean supportsLocalTempTables()
Description copied from class:org.eclipse.persistence.internal.databaseaccess.DatabasePlatformINTERNAL: Indicates whether the platform supports local temporary tables. "Local" means that several threads may create temporary tables with the same name. Local temporary table is created in the beginning of UpdateAllQuery execution and dropped in the end of it. Override this method if the platform supports local temporary tables.- Overrides:
supportsLocalTempTablesin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
supportsStoredFunctions
public boolean supportsStoredFunctions()
- Overrides:
supportsStoredFunctionsin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
supportsDeleteOnCascade
public boolean supportsDeleteOnCascade()
SQL Anywhere does support cascade on delete, unlike Sybase.- Overrides:
supportsDeleteOnCascadein classSybasePlatform
-
-