Class SybasePlatform
- 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
-
- All Implemented Interfaces:
Serializable
,Cloneable
,CorePlatform<ConversionManager>
,Platform
- Direct Known Subclasses:
SQLAnywherePlatform
public class SybasePlatform extends DatabasePlatform
Purpose: Provides Sybase ASE specific behavior.
Responsibilities:
- Native SQL for byte[], Date, Time, & Timestamp.
- Native sequencing using @@IDENTITY.
- Since:
- TOPLink/Java 1.0
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected Map
typeStrings
-
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, shouldCacheAllStatements, shouldCreateIndicesOnForeignKeys, shouldForceBindAllParameters, shouldForceFieldNamesToUpperCase, shouldIgnoreCaseOnFieldComparisons, shouldOptimizeDataConversion, shouldTrimStrings, statementCacheSize, storedProcedureTerminationToken, stringBindingSize, structConverters, supportsAutoCommit, tableCreationSuffix, transactionIsolation, typeConverters, 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, tableQualifier, timestampQuery
-
-
Constructor Summary
Constructors Constructor Description SybasePlatform()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
appendByteArray(byte[] bytes, Writer writer)
If using native SQL then print a byte[] as '0xFF...'protected void
appendCalendar(Calendar calendar, Writer writer)
Answer a platform correct string representation of a Calendar, suitable for SQL generation.protected void
appendDate(Date date, Writer writer)
Answer a platform correct string representation of a Date, suitable for SQL generation.protected void
appendSybaseCalendar(Calendar calendar, Writer writer)
Write a timestamp in Sybase specific format ( yyyy-mm-dd-hh.mm.ss.fff)protected void
appendSybaseTimestamp(Timestamp timestamp, Writer writer)
Write a timestamp in Sybase specific format (yyyy-mm-dd-hh.mm.ss.fff).protected void
appendTime(Time time, Writer writer)
Answer a platform correct string representation of a Time, suitable for SQL generation.protected void
appendTimestamp(Timestamp timestamp, Writer writer)
Answer a platform correct string representation of a Timestamp, suitable for SQL generation.ExpressionOperator
atan2Operator()
INTERNAL: Build operator.protected Hashtable
buildFieldTypes()
Return the mapping of class types to database types for the schema framework.ValueReadQuery
buildSelectQueryForIdentity()
INTERNAL: Build the identity query for native sequencing.static ExpressionOperator
extractOperator()
INTERNAL: Derby does not support EXTRACT, but does have DATEPART.String
getBatchDelimiterString()
Used for batch writing and sp defs.protected String
getCreateTempTableSqlPrefix()
INTERNAL:String
getCreationInOutputProcedureToken()
This method is used to print the required output parameter token for the specific platform.String
getCreationOutputProcedureToken()
This method is used to print the required output parameter token for the specific platform.String
getInOutputProcedureToken()
This method is used to print the output parameter token when stored procedures are calledint
getJDBCType(Class javaType)
Sybase and SQL Anywhere do not support BLOB/CLOB but require LONGVARBINARY/LONGVARCHAR.String
getJdbcTypeName(int jdbcType)
INTERNAL: Returns the type name corresponding to the jdbc typeint
getMaxFieldNameSize()
INTERNAL: returns the maximum number of characters that can be used in a field name on this platform.Vector
getNativeTableInfo(String table, String creator, AbstractSession session)
Return the catalog information through using the native SQL catalog selects.String
getOutputProcedureToken()
This method is used to print the output parameter token when stored procedures are calledString
getProcedureArgumentString()
Used for sp defs.String
getProcedureCallHeader()
Used for sp calls.String
getProcedureCallTail()
Used for sp calls.String
getSelectForUpdateString()
Most database support a syntax.String
getStoredProcedureParameterPrefix()
DatabaseTable
getTempTableForTable(DatabaseTable table)
INTERNAL:ValueReadQuery
getTimestampQuery()
PUBLIC: This method returns the query to select the timestamp from the server for Sybase.protected Map<Integer,String>
getTypeStrings()
void
initializeConnectionData(Connection connection)
INTERNAL: Allow initialization from the connection.protected void
initializePlatformOperators()
Initialize any platform-specific operatorsprotected void
initializeTypeStrings()
boolean
isOutputAllowWithResultSet()
INTERNAL: Return true if output parameters can be built with result sets.boolean
isSybase()
Hashtable<Class<? extends Number>,Number>
maximumNumericValues()
Builds a table of maximum numeric values keyed on java class.Hashtable<Class<? extends Number>,Number>
minimumNumericValues()
Builds a table of minimum numeric values keyed on java class.ExpressionOperator
modOperator()
Override the default MOD operator.protected ExpressionOperator
operatorOuterJoin()
void
printFieldIdentityClause(Writer writer)
Append the receiver's field 'identity' constraint clause to a writer.void
printFieldNullClause(Writer writer)
Append the receiver's field 'NULL' constraint clause to a writer.void
registerOutputParameter(CallableStatement statement, int index, int jdbcType)
This method is used to register output parameter on Callable Statements for Stored Procedures as each database seems to have a different method.void
registerOutputParameter(CallableStatement statement, int index, int jdbcType, String typeName)
This method is used to register output parameter on CallableStatements for Stored Procedures as each database seems to have a different method.boolean
requiresProcedureCallBrackets()
USed for sp calls.boolean
requiresProcedureCallOuputToken()
Used for sp calls.boolean
requiresTypeNameToRegisterOutputParameter()
INTERNAL: Indicates whether the version of CallableStatement.registerOutputParameter method that takes type name should be used.boolean
shouldPrintInOutputTokenBeforeType()
This is required in the construction of the stored procedures with output parametersboolean
shouldPrintLockingClauseAfterWhereClause()
The sybase syntax for obtaining pessimistic lock is "SELECT ADDRESS_ID, ...boolean
shouldPrintOutputTokenBeforeType()
This is required in the construction of the stored procedures with output parametersboolean
shouldUseJDBCOuterJoinSyntax()
JDBC defines and outer join syntax, many drivers do not support this.ExpressionOperator
singleArgumentSubstringOperator()
Override the default SubstringSingleArg operator.boolean
supportsDeleteOnCascade()
Sybase (as of Sybase ASE 15, does not support delete on cascade).boolean
supportsGlobalTempTables()
INTERNAL:boolean
supportsIdentity()
INTERNAL: Indicates whether the platform supports identity.static ExpressionOperator
trim2Operator()
INTERNAL: Build Trim operator.static ExpressionOperator
trimOperator()
INTERNAL: Use RTRIM(LTRIM(?)) function for trim.boolean
useJDBCStoredProcedureSyntax()
Return true if this platform is to use the JDBC supported syntax for executing stored procedures.void
writeUpdateOriginalFromTempTableSql(Writer writer, DatabaseTable table, Collection pkFields, Collection assignedFields)
INTERNAL:-
Methods inherited from class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
addBatch, addStructConverter, 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, getBatchEndString, getBatchRowCountAssignString, getBatchRowCountDeclareString, getBatchRowCountReturnString, getBatchWritingMechanism, getCastSizeForVarcharParameter, getClassTypes, getConnection, getConnectionUserName, getConstraintDeletionString, getCreateDatabaseSchemaString, getCreateTempTableSqlBodyForTable, getCreateTempTableSqlSuffix, getCreateViewString, getCursorCode, getCustomModifyValueForCall, getDefaultSequenceTableName, getDriverSupportsNVarChar, getDropCascadeString, getDropDatabaseSchemaString, getFieldTypeDefinition, getFieldTypes, getFunctionCallHeader, getIndexNamePrefix, getInputProcedureToken, getJDBCOuterJoinString, getJDBCType, getJDBCTypeForSetNull, getMaxBatchWritingSize, getMaxForeignKeyNameSize, getMaxIndexNameSize, getMaxUniqueKeyNameSize, getNoWaitString, getObjectFromResultSet, getParameterValueFromDatabaseCall, getParameterValueFromDatabaseCall, getPartitioningCallback, getPingSQL, getProcedureArgument, getProcedureAsString, getProcedureBeginString, getProcedureEndString, getProcedureOptionList, getQualifiedName, getQualifiedSequenceTableName, getRefValue, getRefValue, getSelectForUpdateNoWaitString, getSelectForUpdateOfString, getSelectForUpdateWaitString, getSequenceCounterFieldName, getSequenceNameFieldName, getSequencePreallocationSize, getSequenceTableName, getStatementCacheSize, getStoredProcedureTerminationToken, getStringBindingSize, getStructConverters, getTableCreationSuffix, getTableExistsQuery, 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, printFieldTypeSize, printFieldUnique, printFieldUnique, printSQLSelectStatement, printStoredFunctionReturnKeyWord, printValuelist, printValuelist, registerOutputParameter, registerOutputParameter, requiresNamedPrimaryKeyConstraints, requiresProcedureBrackets, requiresTableInIndexDropDDL, 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, 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, shouldCacheAllStatements, shouldCreateIndicesForPrimaryKeys, shouldCreateIndicesOnForeignKeys, shouldCreateIndicesOnUniqueKeys, shouldForceBindAllParameters, shouldForceFieldNamesToUpperCase, shouldIgnoreCaseOnFieldComparisons, shouldIgnoreException, shouldOptimizeDataConversion, shouldPrintAliasForUpdate, shouldPrintConstraintNameAfter, shouldPrintFieldIdentityClause, shouldPrintForUpdateClause, shouldPrintInnerJoinInWhereClause, shouldPrintInputTokenAtStart, shouldPrintOuterJoinInWhereClause, shouldPrintOutputTokenAtStart, shouldPrintStoredProcedureArgumentNameInCall, shouldPrintStoredProcedureVariablesAfterBeginString, shouldTempTableSpecifyPrimaryKeys, shouldTrimStrings, shouldUseCustomModifyForCall, shouldUseGetSetNString, shouldUseRownumFiltering, supportsANSIInnerJoinSyntax, supportsAutoCommit, supportsAutoConversionToNumericForArithmeticOperations, supportsConnectionUserName, supportsCountDistinctWithMultipleFields, supportsForeignKeyConstraints, 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, writeParameterMarker, writeTableCreationSuffix
-
Methods inherited from class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
addOperator, addSequence, addSequence, buildNativeCall, buildSelectQueryForIdentity, buildSelectQueryForSequenceObject, 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, initIdentitySequences, isAccess, isAttunity, isCloudscape, isDB2, isDB2Z, isDBase, isDerby, isFirebird, isH2, isHANA, isHSQL, isInformix, isMaxDB, isMySQL, isODBC, isOracle, isOracle12, isOracle9, isPervasive, isPointBase, isPostgreSQL, isSQLAnywhere, isSQLServer, isSymfoware, isTimesTen, isTimesTen7, removeAllSequences, removeIdentitySequences, removeSequence, sequencesAfterCloneCleanup, setConversionManager, setDefaultNativeSequenceToTable, setDefaultSeqenceAtNextValue, setDefaultSequence, setEndDelimiter, setSelectSequenceNumberQuery, setSequencePreallocationSize, setSequences, setStartDelimiter, setTableQualifier, setTimestampQuery, setUpdateSequenceQuery, shouldNativeSequenceUseTransaction, shouldPrepare, shouldSelectDistinctIncludeOrderBy, shouldSelectIncludeOrderBy, supportsNativeSequenceNumbers, supportsSequenceObjects, toString, usesPlatformDefaultSequence
-
-
-
-
Field Detail
-
typeStrings
protected Map typeStrings
-
-
Method Detail
-
initializeConnectionData
public void initializeConnectionData(Connection connection) throws SQLException
Description copied from class:DatabasePlatform
INTERNAL: Allow initialization from the connection.- Overrides:
initializeConnectionData
in classDatabasePlatform
- Throws:
SQLException
-
initializeTypeStrings
protected void initializeTypeStrings()
-
getJDBCType
public int getJDBCType(Class javaType)
Sybase and SQL Anywhere do not support BLOB/CLOB but require LONGVARBINARY/LONGVARCHAR.- Overrides:
getJDBCType
in classDatabasePlatform
-
appendByteArray
protected void appendByteArray(byte[] bytes, Writer writer) throws IOException
If using native SQL then print a byte[] as '0xFF...'- Overrides:
appendByteArray
in classDatabasePlatform
- Throws:
IOException
-
appendDate
protected void appendDate(Date date, Writer writer) throws IOException
Answer a platform correct string representation of a Date, suitable for SQL generation. Native format: 'yyyy-mm-dd- Overrides:
appendDate
in classDatabasePlatform
- Throws:
IOException
-
appendSybaseTimestamp
protected void appendSybaseTimestamp(Timestamp timestamp, Writer writer) throws IOException
Write a timestamp in Sybase specific format (yyyy-mm-dd-hh.mm.ss.fff).- Throws:
IOException
-
appendTime
protected void appendTime(Time time, Writer writer) throws IOException
Answer a platform correct string representation of a Time, suitable for SQL generation. The time is printed in the ODBC platform independent format {t'hh:mm:ss'}.- Overrides:
appendTime
in classDatabasePlatform
- Throws:
IOException
-
appendTimestamp
protected void appendTimestamp(Timestamp timestamp, Writer writer) throws IOException
Answer a platform correct string representation of a Timestamp, suitable for SQL generation. The date is printed in the ODBC platform independent format {d'YYYY-MM-DD'}.- Overrides:
appendTimestamp
in classDatabasePlatform
- Throws:
IOException
-
appendCalendar
protected void appendCalendar(Calendar calendar, Writer writer) throws IOException
Answer a platform correct string representation of a Calendar, suitable for SQL generation. The date is printed in the ODBC platform independent format {d'YYYY-MM-DD'}.- Overrides:
appendCalendar
in classDatabasePlatform
- Throws:
IOException
-
appendSybaseCalendar
protected void appendSybaseCalendar(Calendar calendar, Writer writer) throws IOException
Write a timestamp in Sybase specific format ( yyyy-mm-dd-hh.mm.ss.fff)- Throws:
IOException
-
atan2Operator
public ExpressionOperator atan2Operator()
INTERNAL: Build operator.
-
buildFieldTypes
protected Hashtable buildFieldTypes()
Description copied from class:DatabasePlatform
Return the mapping of class types to database types for the schema framework.- Overrides:
buildFieldTypes
in classDatabasePlatform
-
buildSelectQueryForIdentity
public ValueReadQuery buildSelectQueryForIdentity()
INTERNAL: Build the identity query for native sequencing.- Overrides:
buildSelectQueryForIdentity
in classDatasourcePlatform
-
shouldPrintLockingClauseAfterWhereClause
public boolean shouldPrintLockingClauseAfterWhereClause()
The sybase syntax for obtaining pessimistic lock is "SELECT ADDRESS_ID, ... FROM ADDRESS WITH (HOLDLOCK) WHERE (ADDRESS_ID = ?)" Please note that above only obtains shared lock. Apparently there is no way to obtain exclusive lock on Sybase using only a select statement- Overrides:
shouldPrintLockingClauseAfterWhereClause
in classDatabasePlatform
-
getSelectForUpdateString
public String getSelectForUpdateString()
Description copied from class:DatabasePlatform
Most database support a syntax. although don't actually lock the row. Some require the OF some don't like it.- Overrides:
getSelectForUpdateString
in classDatabasePlatform
-
getBatchDelimiterString
public String getBatchDelimiterString()
Used for batch writing and sp defs.- Overrides:
getBatchDelimiterString
in classDatabasePlatform
-
getCreationInOutputProcedureToken
public String getCreationInOutputProcedureToken()
Description copied from class:DatabasePlatform
This method is used to print the required output parameter token for the specific platform. Used when stored procedures are created.- Overrides:
getCreationInOutputProcedureToken
in classDatabasePlatform
-
getCreationOutputProcedureToken
public String getCreationOutputProcedureToken()
Description copied from class:DatabasePlatform
This method is used to print the required output parameter token for the specific platform. Used when stored procedures are created.- Overrides:
getCreationOutputProcedureToken
in classDatabasePlatform
-
getInOutputProcedureToken
public String getInOutputProcedureToken()
Description copied from class:DatabasePlatform
This method is used to print the output parameter token when stored procedures are called- Overrides:
getInOutputProcedureToken
in classDatabasePlatform
-
getJdbcTypeName
public String getJdbcTypeName(int jdbcType)
INTERNAL: Returns the type name corresponding to the jdbc type- Overrides:
getJdbcTypeName
in classDatabasePlatform
-
getMaxFieldNameSize
public int getMaxFieldNameSize()
INTERNAL: returns the maximum number of characters that can be used in a field name on this platform.- Overrides:
getMaxFieldNameSize
in classDatabasePlatform
-
getNativeTableInfo
public Vector getNativeTableInfo(String table, String creator, AbstractSession session)
Return the catalog information through using the native SQL catalog selects. This is required because many JDBC driver do not support meta-data. Willcards can be passed as arguments.
-
getOutputProcedureToken
public String getOutputProcedureToken()
Description copied from class:DatabasePlatform
This method is used to print the output parameter token when stored procedures are called- Overrides:
getOutputProcedureToken
in classDatabasePlatform
-
getProcedureArgumentString
public String getProcedureArgumentString()
Used for sp defs.- Overrides:
getProcedureArgumentString
in classDatabasePlatform
-
getProcedureCallHeader
public String getProcedureCallHeader()
Used for sp calls.- Overrides:
getProcedureCallHeader
in classDatabasePlatform
-
getProcedureCallTail
public String getProcedureCallTail()
Description copied from class:DatabasePlatform
Used for sp calls.- Overrides:
getProcedureCallTail
in classDatabasePlatform
-
useJDBCStoredProcedureSyntax
public boolean useJDBCStoredProcedureSyntax()
Return true if this platform is to use the JDBC supported syntax for executing stored procedures. If the driver is known to be the DataDirec driver, and the value is not set, then set to true and return.
-
getStoredProcedureParameterPrefix
public String getStoredProcedureParameterPrefix()
- Overrides:
getStoredProcedureParameterPrefix
in classDatabasePlatform
-
getTimestampQuery
public ValueReadQuery getTimestampQuery()
PUBLIC: This method returns the query to select the timestamp from the server for Sybase.- Specified by:
getTimestampQuery
in interfacePlatform
- Overrides:
getTimestampQuery
in classDatasourcePlatform
-
initializePlatformOperators
protected void initializePlatformOperators()
Initialize any platform-specific operators- Overrides:
initializePlatformOperators
in classDatasourcePlatform
-
extractOperator
public static ExpressionOperator extractOperator()
INTERNAL: Derby does not support EXTRACT, but does have DATEPART.
-
trimOperator
public static ExpressionOperator trimOperator()
INTERNAL: Use RTRIM(LTRIM(?)) function for trim.
-
trim2Operator
public static ExpressionOperator trim2Operator()
INTERNAL: Build Trim operator.
-
isOutputAllowWithResultSet
public boolean isOutputAllowWithResultSet()
INTERNAL: Return true if output parameters can be built with result sets.- Overrides:
isOutputAllowWithResultSet
in classDatabasePlatform
-
isSybase
public boolean isSybase()
- Specified by:
isSybase
in interfacePlatform
- Overrides:
isSybase
in classDatasourcePlatform
-
maximumNumericValues
public Hashtable<Class<? extends Number>,Number> maximumNumericValues()
Builds a table of maximum numeric values keyed on java class. This is used for type testing but might also be useful to end users attempting to sanitize values.NOTE: BigInteger & BigDecimal maximums are dependent upon their precision & Scale
- Overrides:
maximumNumericValues
in classDatabasePlatform
-
minimumNumericValues
public Hashtable<Class<? extends Number>,Number> minimumNumericValues()
Builds a table of minimum numeric values keyed on java class. This is used for type testing but might also be useful to end users attempting to sanitize values.NOTE: BigInteger & BigDecimal minimums are dependent upon their precision & Scale
- Overrides:
minimumNumericValues
in classDatabasePlatform
-
modOperator
public ExpressionOperator modOperator()
Override the default MOD operator.
-
operatorOuterJoin
protected ExpressionOperator operatorOuterJoin()
-
printFieldIdentityClause
public void printFieldIdentityClause(Writer writer) throws ValidationException
Append the receiver's field 'identity' constraint clause to a writer.- Overrides:
printFieldIdentityClause
in classDatabasePlatform
- Throws:
ValidationException
-
printFieldNullClause
public void printFieldNullClause(Writer writer) throws ValidationException
Append the receiver's field 'NULL' constraint clause to a writer.- Overrides:
printFieldNullClause
in classDatabasePlatform
- Throws:
ValidationException
-
registerOutputParameter
public void registerOutputParameter(CallableStatement statement, int index, int jdbcType) throws SQLException
This method is used to register output parameter on Callable Statements for Stored Procedures as each database seems to have a different method.- Overrides:
registerOutputParameter
in classDatabasePlatform
- Throws:
SQLException
- See Also:
CallableStatement.registerOutParameter(int parameterIndex, int sqlType)
-
registerOutputParameter
public void registerOutputParameter(CallableStatement statement, int index, int jdbcType, String typeName) throws SQLException
Description copied from class:DatabasePlatform
This method is used to register output parameter on CallableStatements for Stored Procedures as each database seems to have a different method.- Overrides:
registerOutputParameter
in classDatabasePlatform
- Throws:
SQLException
- See Also:
CallableStatement.registerOutParameter(int parameterIndex, int sqlType, String typeName)
-
requiresProcedureCallBrackets
public boolean requiresProcedureCallBrackets()
USed for sp calls.- Overrides:
requiresProcedureCallBrackets
in classDatabasePlatform
-
requiresProcedureCallOuputToken
public boolean requiresProcedureCallOuputToken()
Used for sp calls. Sybase must print output after output params.- Overrides:
requiresProcedureCallOuputToken
in classDatabasePlatform
-
requiresTypeNameToRegisterOutputParameter
public boolean requiresTypeNameToRegisterOutputParameter()
INTERNAL: Indicates whether the version of CallableStatement.registerOutputParameter method that takes type name should be used.- Overrides:
requiresTypeNameToRegisterOutputParameter
in classDatabasePlatform
-
shouldPrintInOutputTokenBeforeType
public boolean shouldPrintInOutputTokenBeforeType()
Description copied from class:DatabasePlatform
This is required in the construction of the stored procedures with output parameters- Overrides:
shouldPrintInOutputTokenBeforeType
in classDatabasePlatform
-
shouldPrintOutputTokenBeforeType
public boolean shouldPrintOutputTokenBeforeType()
Description copied from class:DatabasePlatform
This is required in the construction of the stored procedures with output parameters- Overrides:
shouldPrintOutputTokenBeforeType
in classDatabasePlatform
-
shouldUseJDBCOuterJoinSyntax
public boolean shouldUseJDBCOuterJoinSyntax()
JDBC defines and outer join syntax, many drivers do not support this. So we normally avoid it.- Overrides:
shouldUseJDBCOuterJoinSyntax
in classDatabasePlatform
-
singleArgumentSubstringOperator
public ExpressionOperator singleArgumentSubstringOperator()
Override the default SubstringSingleArg operator.
-
supportsIdentity
public boolean supportsIdentity()
INTERNAL: Indicates whether the platform supports identity. Sybase does through IDENTITY field types. This method is to be used *ONLY* by sequencing classes- Overrides:
supportsIdentity
in classDatasourcePlatform
-
supportsDeleteOnCascade
public boolean supportsDeleteOnCascade()
Sybase (as of Sybase ASE 15, does not support delete on cascade). Sybase ASA (SQL Anywhere does, so must use different platform).- Overrides:
supportsDeleteOnCascade
in classDatabasePlatform
-
supportsGlobalTempTables
public boolean supportsGlobalTempTables()
INTERNAL:- Overrides:
supportsGlobalTempTables
in classDatabasePlatform
-
getCreateTempTableSqlPrefix
protected String getCreateTempTableSqlPrefix()
INTERNAL:- Overrides:
getCreateTempTableSqlPrefix
in classDatabasePlatform
-
getTempTableForTable
public DatabaseTable getTempTableForTable(DatabaseTable table)
INTERNAL:- Overrides:
getTempTableForTable
in classDatabasePlatform
- Parameters:
table
- is original table for which temp table is created.- Returns:
- temporary table
-
writeUpdateOriginalFromTempTableSql
public void writeUpdateOriginalFromTempTableSql(Writer writer, DatabaseTable table, Collection pkFields, Collection assignedFields) throws IOException
INTERNAL:- Overrides:
writeUpdateOriginalFromTempTableSql
in classDatabasePlatform
- Parameters:
writer
- for writing the sqltable
- is original table for which temp table is created.pkFields
- primary key fields for the original table.assignedFields
- fields to be assigned a new value.- Throws:
IOException
-
-