EclipseLink 2.4.2, build 'v20130514-5956486' API Reference

org.eclipse.persistence.platform.database
Class SybasePlatform

java.lang.Object
  extended by org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
      extended by org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
          extended by org.eclipse.persistence.platform.database.DatabasePlatform
              extended by org.eclipse.persistence.platform.database.SybasePlatform
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, org.eclipse.persistence.internal.databaseaccess.Platform
Direct Known Subclasses:
SQLAnywherePlatform

public class SybasePlatform
extends DatabasePlatform

Purpose: Provides Sybase ASE specific behavior.

Responsibilities:

See Also:
Serialized Form
Since:
TOPLink/Java 1.0

Field Summary
protected  java.util.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
castSizeForVarcharParameter, classTypes, cursorCode, DEFAULT_MAX_BATCH_WRITING_SIZE, DEFAULT_PARAMETERIZED_MAX_BATCH_WRITING_SIZE, fieldTypes, IS_VALID_TIMEOUT, isCastRequired, maxBatchWritingSize, partitioningCallback, pingSQL, printInnerJoinInWhereClause, printOuterJoinInWhereClause, shouldBindAllParameters, shouldBindLiterals, shouldCacheAllStatements, shouldForceFieldNamesToUpperCase, shouldIgnoreCaseOnFieldComparisons, shouldOptimizeDataConversion, shouldTrimStrings, statementCacheSize, stringBindingSize, structConverters, supportsAutoCommit, tableCreationSuffix, transactionIsolation, typeConverters, Types_NCLOB, Types_SQLXML, useRownumFiltering, usesBatchWriting, usesByteArrayBinding, usesJDBCBatchWriting, usesNativeBatchWriting, usesNativeSQL, usesStreamsForBinding, usesStringBinding
 
Fields inherited from class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
conversionManager, dataTypesConvertedFromAClass, dataTypesConvertedToAClass, defaultSequence, endDelimiter, platformOperators, sequences, sequencesLock, startDelimiter, tableQualifier, timestampQuery
 
Constructor Summary
SybasePlatform()
           
 
Method Summary
protected  void appendByteArray(byte[] bytes, java.io.Writer writer)
          If using native SQL then print a byte[] as '0xFF...'
protected  void appendCalendar(java.util.Calendar calendar, java.io.Writer writer)
          Answer a platform correct string representation of a Calendar, suitable for SQL generation.
protected  void appendDate(java.sql.Date date, java.io.Writer writer)
          Answer a platform correct string representation of a Date, suitable for SQL generation.
protected  void appendSybaseCalendar(java.util.Calendar calendar, java.io.Writer writer)
          Write a timestamp in Sybase specific format ( yyyy-mm-dd-hh.mm.ss.fff)
protected  void appendSybaseTimestamp(java.sql.Timestamp timestamp, java.io.Writer writer)
          Write a timestamp in Sybase specific format (yyyy-mm-dd-hh.mm.ss.fff).
protected  void appendTime(java.sql.Time time, java.io.Writer writer)
          Answer a platform correct string representation of a Time, suitable for SQL generation.
protected  void appendTimestamp(java.sql.Timestamp timestamp, java.io.Writer writer)
          Answer a platform correct string representation of a Timestamp, suitable for SQL generation.
 ExpressionOperator atan2Operator()
          INTERNAL: Build operator.
protected  java.util.Hashtable buildFieldTypes()
           
 ValueReadQuery buildSelectQueryForIdentity()
          INTERNAL: Build the identity query for native sequencing.
 java.lang.Object executeStoredProcedure(org.eclipse.persistence.internal.databaseaccess.DatabaseCall dbCall, java.sql.PreparedStatement statement, org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor accessor, org.eclipse.persistence.internal.sessions.AbstractSession session)
          because each platform has different requirements for accessing stored procedures and the way that we can combine resultsets and output params the stored procedure call is being executed on the platform.
static ExpressionOperator extractOperator()
          INTERNAL: Derby does not support EXTRACT, but does have DATEPART.
 java.lang.String getBatchDelimiterString()
          Used for batch writing and sp defs.
protected  java.lang.String getCreateTempTableSqlPrefix()
          INTERNAL:
 java.lang.String getCreationInOutputProcedureToken()
           
 java.lang.String getCreationOutputProcedureToken()
           
 java.lang.String getInOutputProcedureToken()
           
 int getJDBCType(java.lang.Class javaType)
          Sybase and SQL Anywhere do not support BLOB/CLOB but require LONGVARBINARY/LONGVARCHAR.
 java.lang.String getJdbcTypeName(int jdbcType)
          INTERNAL: Returns the type name corresponding to the jdbc type
 int getMaxFieldNameSize()
          INTERNAL: returns the maximum number of characters that can be used in a field name on this platform.
 java.util.Vector getNativeTableInfo(java.lang.String table, java.lang.String creator, org.eclipse.persistence.internal.sessions.AbstractSession session)
          Return the catalog information through using the native SQL catalog selects.
 java.lang.String getOutputProcedureToken()
           
 java.lang.String getProcedureArgumentString()
          Used for sp defs.
 java.lang.String getProcedureCallHeader()
          Used for sp calls.
 java.lang.String getSelectForUpdateString()
           
 java.lang.String getStoredProcedureParameterPrefix()
           
 java.lang.String getStoredProcedureTerminationToken()
          INTERNAL: This method returns the delimiter between stored procedures in multiple stored procedure calls.
 org.eclipse.persistence.internal.helper.DatabaseTable getTempTableForTable(org.eclipse.persistence.internal.helper.DatabaseTable table)
          INTERNAL:
 ValueReadQuery getTimestampQuery()
          PUBLIC: This method returns the query to select the timestamp from the server for Sybase.
protected  java.util.Map getTypeStrings()
           
protected  void initializePlatformOperators()
          Initialize any platform-specific operators
protected  void initializeTypeStrings()
           
 boolean isSybase()
           
 java.util.Hashtable maximumNumericValues()
          Builds a table of maximum numeric values keyed on java class.
 java.util.Hashtable minimumNumericValues()
          Builds a table of minimum numeric values keyed on java class.
 ExpressionOperator modOperator()
          Override the default MOD operator.
protected  ExpressionOperator operatorOuterJoin()
           
 void printFieldIdentityClause(java.io.Writer writer)
          Append the receiver's field 'identity' constraint clause to a writer.
 void printFieldNullClause(java.io.Writer writer)
          Append the receiver's field 'NULL' constraint clause to a writer.
 void registerOutputParameter(java.sql.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.
 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()
           
 boolean shouldPrintLockingClauseAfterWhereClause()
          The sybase syntax for obtaining pessimistic lock is "SELECT ADDRESS_ID, ...
 boolean shouldPrintOutputTokenBeforeType()
           
 boolean 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(?))
 void writeUpdateOriginalFromTempTableSql(java.io.Writer writer, org.eclipse.persistence.internal.helper.DatabaseTable table, java.util.Collection pkFields, java.util.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, commitTransaction, computeMaxRowsForSQL, convertToDatabaseType, copyInto, createArray, createArray, createPlatformDefaultSequence, createStruct, createStruct, dontBindUpdateAllQueryUsingTempTables, executeBatch, freeTemporaryObject, getAssignmentString, getBatchBeginString, getBatchEndString, getCastSizeForVarcharParameter, getClassTypes, getConnection, getConstraintDeletionString, getCreateTempTableSqlBodyForTable, getCreateTempTableSqlSuffix, getCreateViewString, getCursorCode, getCustomModifyValueForCall, getDefaultSequenceTableName, getFieldTypeDefinition, getFieldTypes, getFunctionCallHeader, getIdentifierQuoteCharacter, getIndexNamePrefix, getInputProcedureToken, getJDBCOuterJoinString, getJDBCType, getJDBCTypeForSetNull, getMaxBatchWritingSize, getMaxForeignKeyNameSize, getMaxIndexNameSize, getMaxUniqueKeyNameSize, getNoWaitString, getObjectFromResultSet, getPartitioningCallback, getPingSQL, getProcedureArgumentSetter, getProcedureAsString, getProcedureBeginString, getProcedureCallTail, getProcedureEndString, getQualifiedName, getQualifiedSequenceTableName, getRefValue, getRefValue, getSelectForUpdateNoWaitString, getSelectForUpdateOfString, getSelectForUpdateWaitString, getSequenceCounterFieldName, getSequenceNameFieldName, getSequencePreallocationSize, getSequenceTableName, getStatementCacheSize, getStringBindingSize, getStructConverters, getTableCreationSuffix, getTransactionIsolation, getTypeConverters, getVPDClearIdentifierQuery, getVPDCreationFunctionString, getVPDCreationPolicyString, getVPDDeletionString, getVPDSetIdentifierQuery, hasPartitioningCallback, initialize, initializeConnectionData, isAlterSequenceObjectSupported, isCastRequired, isDynamicSQLRequiredForFunctions, isForUpdateCompatibleWithDistinct, isInformixOuterJoin, isLockTimeoutException, isNullAllowedInSelectClause, isXDBDocument, minimumTimeIncrement, prepareBatchStatement, printFieldNotNullClause, printFieldTypeSize, printFieldTypeSize, printFieldUnique, printFieldUnique, printSQLSelectStatement, printStoredFunctionReturnKeyWord, printValuelist, printValuelist, requiresNamedPrimaryKeyConstraints, requiresProcedureBrackets, requiresTableInIndexDropDDL, requiresUniqueConstraintCreationOnTableCreate, retrieveFirstPrimaryKeyOrOne, rollbackTransaction, setCastSizeForVarcharParameter, setClassTypes, setCursorCode, setFieldTypes, setIsCastRequired, setMaxBatchWritingSize, setNullFromDatabaseField, setParameterValueInDatabaseCall, setPartitioningCallback, setPingSQL, setPrintInnerJoinInWhereClause, setPrintOuterJoinInWhereClause, setSequenceCounterFieldName, setSequenceNameFieldName, setSequenceTableName, setShouldBindAllParameters, setShouldBindLiterals, setShouldCacheAllStatements, setShouldForceFieldNamesToUpperCase, setShouldIgnoreCaseOnFieldComparisons, setShouldOptimizeDataConversion, setShouldTrimStrings, setShouldUseRownumFiltering, setStatementCacheSize, setStringBindingSize, setSupportsAutoCommit, setTableCreationSuffix, setTransactionIsolation, setUsesBatchWriting, setUsesByteArrayBinding, setUsesJDBCBatchWriting, setUsesNativeBatchWriting, setUsesNativeSQL, setUsesStreamsForBinding, setUsesStringBinding, shouldAlwaysUseTempStorageForModifyAll, shouldBindAllParameters, shouldBindLiterals, shouldCacheAllStatements, shouldCreateIndicesForPrimaryKeys, shouldCreateIndicesOnUniqueKeys, shouldForceFieldNamesToUpperCase, shouldIgnoreCaseOnFieldComparisons, shouldIgnoreException, shouldOptimizeDataConversion, shouldPrintAliasForUpdate, shouldPrintConstraintNameAfter, shouldPrintFieldIdentityClause, shouldPrintInnerJoinInWhereClause, shouldPrintInputTokenAtStart, shouldPrintOuterJoinInWhereClause, shouldPrintOutputTokenAtStart, shouldPrintStoredProcedureArgumentNameInCall, shouldPrintStoredProcedureVariablesAfterBeginString, shouldTempTableSpecifyPrimaryKeys, shouldTrimStrings, shouldUseCustomModifyForCall, shouldUseRownumFiltering, supportsANSIInnerJoinSyntax, supportsAutoCommit, supportsAutoConversionToNumericForArithmeticOperations, supportsCountDistinctWithMultipleFields, supportsForeignKeyConstraints, supportsIndexes, supportsIndividualTableLocking, supportsLocalTempTables, supportsLockingQueriesWithMultipleTables, supportsNestingOuterJoins, supportsOuterJoinsWithBrackets, supportsPrimaryKeyConstraint, supportsStoredFunctions, supportsTempTables, supportsUniqueColumns, supportsUniqueKeyConstraints, supportsVPD, usesBatchWriting, usesByteArrayBinding, usesJDBCBatchWriting, usesNativeBatchWriting, usesNativeSQL, usesSequenceTable, usesStreamsForBinding, usesStringBinding, wasFailureCommunicationBased, 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, getConversionManager, getDataTypesConvertedFrom, getDataTypesConvertedTo, getDefaultSequence, getDefaultSequenceToWrite, getEndDelimiter, getOperator, getPlatformOperators, getSelectSequenceQuery, getSequence, getSequences, getSequencesToWrite, getStartDelimiter, getTableQualifier, getTimestampFromServer, getUpdateSequenceQuery, hasDefaultSequence, initializeDefaultQueries, isAccess, isAttunity, isCloudscape, isDB2, isDBase, isDerby, isFirebird, isH2, isHSQL, isInformix, isMaxDB, isMySQL, isODBC, isOracle, isOracle9, isPointBase, isPostgreSQL, isSQLAnywhere, isSQLServer, isSymfoware, isTimesTen, isTimesTen7, removeAllSequences, removeSequence, sequencesAfterCloneCleanup, setConversionManager, setDefaultSequence, setEndDelimiter, setSelectSequenceNumberQuery, setSequencePreallocationSize, setSequences, setStartDelimiter, setTableQualifier, setTimestampQuery, setUpdateSequenceQuery, shouldNativeSequenceUseTransaction, shouldPrepare, shouldSelectDistinctIncludeOrderBy, shouldSelectIncludeOrderBy, supportsNativeSequenceNumbers, supportsSequenceObjects, toString, usesPlatformDefaultSequence
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

typeStrings

protected java.util.Map typeStrings
Constructor Detail

SybasePlatform

public SybasePlatform()
Method Detail

getTypeStrings

protected java.util.Map getTypeStrings()

initializeTypeStrings

protected void initializeTypeStrings()

getJDBCType

public int getJDBCType(java.lang.Class javaType)
Sybase and SQL Anywhere do not support BLOB/CLOB but require LONGVARBINARY/LONGVARCHAR.

Overrides:
getJDBCType in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

appendByteArray

protected void appendByteArray(byte[] bytes,
                               java.io.Writer writer)
                        throws java.io.IOException
If using native SQL then print a byte[] as '0xFF...'

Overrides:
appendByteArray in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
Throws:
java.io.IOException

appendDate

protected void appendDate(java.sql.Date date,
                          java.io.Writer writer)
                   throws java.io.IOException
Answer a platform correct string representation of a Date, suitable for SQL generation. Native format: 'yyyy-mm-dd

Overrides:
appendDate in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
Throws:
java.io.IOException

appendSybaseTimestamp

protected void appendSybaseTimestamp(java.sql.Timestamp timestamp,
                                     java.io.Writer writer)
                              throws java.io.IOException
Write a timestamp in Sybase specific format (yyyy-mm-dd-hh.mm.ss.fff).

Throws:
java.io.IOException

appendTime

protected void appendTime(java.sql.Time time,
                          java.io.Writer writer)
                   throws java.io.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 class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
Throws:
java.io.IOException

appendTimestamp

protected void appendTimestamp(java.sql.Timestamp timestamp,
                               java.io.Writer writer)
                        throws java.io.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 class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
Throws:
java.io.IOException

appendCalendar

protected void appendCalendar(java.util.Calendar calendar,
                              java.io.Writer writer)
                       throws java.io.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 class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
Throws:
java.io.IOException

appendSybaseCalendar

protected void appendSybaseCalendar(java.util.Calendar calendar,
                                    java.io.Writer writer)
                             throws java.io.IOException
Write a timestamp in Sybase specific format ( yyyy-mm-dd-hh.mm.ss.fff)

Throws:
java.io.IOException

atan2Operator

public ExpressionOperator atan2Operator()
INTERNAL: Build operator.


buildFieldTypes

protected java.util.Hashtable buildFieldTypes()
Overrides:
buildFieldTypes in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

buildSelectQueryForIdentity

public ValueReadQuery buildSelectQueryForIdentity()
INTERNAL: Build the identity query for native sequencing.

Overrides:
buildSelectQueryForIdentity in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform

executeStoredProcedure

public java.lang.Object executeStoredProcedure(org.eclipse.persistence.internal.databaseaccess.DatabaseCall dbCall,
                                               java.sql.PreparedStatement statement,
                                               org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor accessor,
                                               org.eclipse.persistence.internal.sessions.AbstractSession session)
                                        throws java.sql.SQLException
because each platform has different requirements for accessing stored procedures and the way that we can combine resultsets and output params the stored procedure call is being executed on the platform. This entire process needs some serious refactoring to eliminate the chance of bugs.

Overrides:
executeStoredProcedure in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
Throws:
java.sql.SQLException

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 class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

getSelectForUpdateString

public java.lang.String getSelectForUpdateString()
Overrides:
getSelectForUpdateString in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

getBatchDelimiterString

public java.lang.String getBatchDelimiterString()
Used for batch writing and sp defs.

Overrides:
getBatchDelimiterString in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

getCreationInOutputProcedureToken

public java.lang.String getCreationInOutputProcedureToken()
Overrides:
getCreationInOutputProcedureToken in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

getCreationOutputProcedureToken

public java.lang.String getCreationOutputProcedureToken()
Overrides:
getCreationOutputProcedureToken in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

getInOutputProcedureToken

public java.lang.String getInOutputProcedureToken()
Overrides:
getInOutputProcedureToken in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

getJdbcTypeName

public java.lang.String getJdbcTypeName(int jdbcType)
INTERNAL: Returns the type name corresponding to the jdbc type

Overrides:
getJdbcTypeName in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

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 class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

getNativeTableInfo

public java.util.Vector getNativeTableInfo(java.lang.String table,
                                           java.lang.String creator,
                                           org.eclipse.persistence.internal.sessions.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 java.lang.String getOutputProcedureToken()
Overrides:
getOutputProcedureToken in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

getProcedureArgumentString

public java.lang.String getProcedureArgumentString()
Used for sp defs.

Overrides:
getProcedureArgumentString in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

getProcedureCallHeader

public java.lang.String getProcedureCallHeader()
Used for sp calls.

Overrides:
getProcedureCallHeader in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

getStoredProcedureParameterPrefix

public java.lang.String getStoredProcedureParameterPrefix()
Overrides:
getStoredProcedureParameterPrefix in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

getStoredProcedureTerminationToken

public java.lang.String getStoredProcedureTerminationToken()
INTERNAL: This method returns the delimiter between stored procedures in multiple stored procedure calls.

Overrides:
getStoredProcedureTerminationToken in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

getTimestampQuery

public ValueReadQuery getTimestampQuery()
PUBLIC: This method returns the query to select the timestamp from the server for Sybase.

Specified by:
getTimestampQuery in interface org.eclipse.persistence.internal.databaseaccess.Platform
Overrides:
getTimestampQuery in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform

initializePlatformOperators

protected void initializePlatformOperators()
Initialize any platform-specific operators

Overrides:
initializePlatformOperators in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform

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.


isSybase

public boolean isSybase()
Specified by:
isSybase in interface org.eclipse.persistence.internal.databaseaccess.Platform
Overrides:
isSybase in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform

maximumNumericValues

public java.util.Hashtable 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 class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

minimumNumericValues

public java.util.Hashtable 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 class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

modOperator

public ExpressionOperator modOperator()
Override the default MOD operator.


operatorOuterJoin

protected ExpressionOperator operatorOuterJoin()

printFieldIdentityClause

public void printFieldIdentityClause(java.io.Writer writer)
                              throws ValidationException
Append the receiver's field 'identity' constraint clause to a writer.

Overrides:
printFieldIdentityClause in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
Throws:
ValidationException

printFieldNullClause

public void printFieldNullClause(java.io.Writer writer)
                          throws ValidationException
Append the receiver's field 'NULL' constraint clause to a writer.

Overrides:
printFieldNullClause in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
Throws:
ValidationException

registerOutputParameter

public void registerOutputParameter(java.sql.CallableStatement statement,
                                    int index,
                                    int jdbcType)
                             throws java.sql.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 class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
Throws:
java.sql.SQLException

requiresProcedureCallBrackets

public boolean requiresProcedureCallBrackets()
USed for sp calls.

Overrides:
requiresProcedureCallBrackets in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

requiresProcedureCallOuputToken

public boolean requiresProcedureCallOuputToken()
Used for sp calls. Sybase must print output after output params.

Overrides:
requiresProcedureCallOuputToken in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

requiresTypeNameToRegisterOutputParameter

public boolean requiresTypeNameToRegisterOutputParameter()
INTERNAL: Indicates whether the version of CallableStatement.registerOutputParameter method that takes type name should be used.

Overrides:
requiresTypeNameToRegisterOutputParameter in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

shouldPrintInOutputTokenBeforeType

public boolean shouldPrintInOutputTokenBeforeType()
Overrides:
shouldPrintInOutputTokenBeforeType in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

shouldPrintOutputTokenBeforeType

public boolean shouldPrintOutputTokenBeforeType()
Overrides:
shouldPrintOutputTokenBeforeType in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

shouldUseJDBCOuterJoinSyntax

public boolean shouldUseJDBCOuterJoinSyntax()
JDBC defines and outer join syntax, many drivers do not support this. So we normally avoid it.

Overrides:
shouldUseJDBCOuterJoinSyntax in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

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 class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform

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 class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

supportsGlobalTempTables

public boolean supportsGlobalTempTables()
INTERNAL:

Overrides:
supportsGlobalTempTables in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

getCreateTempTableSqlPrefix

protected java.lang.String getCreateTempTableSqlPrefix()
INTERNAL:

Overrides:
getCreateTempTableSqlPrefix in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

getTempTableForTable

public org.eclipse.persistence.internal.helper.DatabaseTable getTempTableForTable(org.eclipse.persistence.internal.helper.DatabaseTable table)
INTERNAL:

Overrides:
getTempTableForTable in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform

writeUpdateOriginalFromTempTableSql

public void writeUpdateOriginalFromTempTableSql(java.io.Writer writer,
                                                org.eclipse.persistence.internal.helper.DatabaseTable table,
                                                java.util.Collection pkFields,
                                                java.util.Collection assignedFields)
                                         throws java.io.IOException
INTERNAL:

Overrides:
writeUpdateOriginalFromTempTableSql in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
Throws:
java.io.IOException

EclipseLink 2.4.2, build 'v20130514-5956486' API Reference