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:
java.io.Serializable,java.lang.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 java.util.MaptypeStrings-
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, shouldBindPartialParameters, shouldCacheAllStatements, shouldCreateIndicesOnForeignKeys, shouldForceBindAllParameters, shouldForceFieldNamesToUpperCase, shouldIgnoreCaseOnFieldComparisons, shouldOptimizeDataConversion, shouldTrimStrings, statementCacheSize, storedProcedureTerminationToken, stringBindingSize, structConverters, supportsAutoCommit, tableCreationSuffix, transactionIsolation, typeConverters, Types_NCLOB, Types_SQLXML, useJDBCStoredProcedureSyntax, useNationalCharacterVarying, useRownumFiltering, usesBatchWriting, usesByteArrayBinding, usesJDBCBatchWriting, usesNativeBatchWriting, usesNativeSQL, usesStreamsForBinding, usesStringBinding
-
Fields inherited from class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
conversionManager, dataTypesConvertedFromAClass, dataTypesConvertedToAClass, defaultNativeSequenceToTable, defaultSeqenceAtNextValue, defaultSequence, endDelimiter, platformOperators, sequences, sequencesLock, startDelimiter, supportsReturnGeneratedKeys, tableQualifier, timestampQuery
-
-
Constructor Summary
Constructors Constructor Description SybasePlatform()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidappendByteArray(byte[] bytes, java.io.Writer writer)If using native SQL then print a byte[] as '0xFF...'protected voidappendCalendar(java.util.Calendar calendar, java.io.Writer writer)Answer a platform correct string representation of a Calendar, suitable for SQL generation.protected voidappendDate(java.sql.Date date, java.io.Writer writer)Answer a platform correct string representation of a Date, suitable for SQL generation.protected voidappendSybaseCalendar(java.util.Calendar calendar, java.io.Writer writer)Write a timestamp in Sybase specific format ( yyyy-mm-dd-hh.mm.ss.fff)protected voidappendSybaseTimestamp(java.sql.Timestamp timestamp, java.io.Writer writer)Write a timestamp in Sybase specific format (yyyy-mm-dd-hh.mm.ss.fff).protected voidappendTime(java.sql.Time time, java.io.Writer writer)Answer a platform correct string representation of a Time, suitable for SQL generation.protected voidappendTimestamp(java.sql.Timestamp timestamp, java.io.Writer writer)Answer a platform correct string representation of a Timestamp, suitable for SQL generation.protected java.util.HashtablebuildFieldTypes()Return the mapping of class types to database types for the schema framework.ValueReadQuerybuildSelectQueryForIdentity()INTERNAL: Build the identity query for native sequencing.protected static ExpressionOperatorextractOperator()INTERNAL: Derby does not support EXTRACT, but does have DATEPART.java.lang.StringgetBatchDelimiterString()Used for batch writing and sp defs.protected java.lang.StringgetCreateTempTableSqlPrefix()INTERNAL:java.lang.StringgetCreationInOutputProcedureToken()This method is used to print the required output parameter token for the specific platform.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 calledintgetJDBCType(java.lang.Class javaType)Sybase and SQL Anywhere do not support BLOB/CLOB but require LONGVARBINARY/LONGVARCHAR.java.lang.StringgetJdbcTypeName(int jdbcType)INTERNAL: Returns the type name corresponding to the jdbc typeintgetMaxFieldNameSize()INTERNAL: returns the maximum number of characters that can be used in a field name on this platform.java.util.VectorgetNativeTableInfo(java.lang.String table, java.lang.String creator, AbstractSession session)Return the catalog information through using the native SQL catalog selects.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.StringgetProcedureCallHeader()Used for sp calls.java.lang.StringgetProcedureCallTail()Used for sp calls.java.lang.StringgetSelectForUpdateString()Most database support a syntax.java.lang.StringgetStoredProcedureParameterPrefix()DatabaseTablegetTempTableForTable(DatabaseTable table)INTERNAL:ValueReadQuerygetTimestampQuery()PUBLIC: This method returns the query to select the timestamp from the server for Sybase.protected java.util.Map<java.lang.Integer,java.lang.String>getTypeStrings()voidinitializeConnectionData(java.sql.Connection connection)INTERNAL: Allow initialization from the connection.protected voidinitializePlatformOperators()Initialize any platform-specific operatorsprotected voidinitializeTypeStrings()booleanisOutputAllowWithResultSet()INTERNAL: Return true if output parameters can be built with result sets.booleanisSybase()java.util.Hashtable<java.lang.Class<? extends java.lang.Number>,java.lang.Number>maximumNumericValues()Builds a table of maximum numeric values keyed on java class.java.util.Hashtable<java.lang.Class<? extends java.lang.Number>,java.lang.Number>minimumNumericValues()Builds a table of minimum numeric values keyed on java class.protected static ExpressionOperatormodOperator()Override the default MOD operator.protected static ExpressionOperatoroperatorOuterJoin()Create the outer join operator for this platformvoidprintFieldIdentityClause(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.voidregisterOutputParameter(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.voidregisterOutputParameter(java.sql.CallableStatement statement, int index, int jdbcType, java.lang.String typeName)This method is used to register output parameter on CallableStatements for Stored Procedures as each database seems to have a different method.booleanrequiresProcedureCallBrackets()USed for sp calls.booleanrequiresProcedureCallOuputToken()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 parametersbooleanshouldPrintLockingClauseAfterWhereClause()The sybase syntax for obtaining pessimistic lock is "SELECT ADDRESS_ID, ...booleanshouldPrintOutputTokenBeforeType()This is required in the construction of the stored procedures with output parametersbooleanshouldUseJDBCOuterJoinSyntax()JDBC defines and outer join syntax, many drivers do not support this.protected static ExpressionOperatorsingleArgumentSubstringOperator()Override the default SubstringSingleArg operator.booleansupportsDeleteOnCascade()Sybase (as of Sybase ASE 15, does not support delete on cascade).booleansupportsGlobalTempTables()INTERNAL:booleansupportsIdentity()INTERNAL: Indicates whether the platform supports identity.protected static ExpressionOperatorsybaseAddMonthsOperator()INTERNAL: Function, to add months to a date.protected static ExpressionOperatorsybaseInStringOperator()INTERNAL: Build instring operatorprotected static ExpressionOperatorsybaseLocate2Operator()INTERNAL: Build the Sybase equivalent to Locate with a start index.protected static ExpressionOperatorsybaseLocateOperator()INTERNAL: Build the Sybase equivalent to Locateprotected static ExpressionOperatorsybaseToCharOperator()INTERNAL: Build Sybase equivalent to TO_CHAR.protected static ExpressionOperatorsybaseToCharWithFormatOperator()INTERNAL: Build Sybase equivalent to TO_CHAR.protected static ExpressionOperatorsybaseToDateOperator()INTERNAL: Build Sybase equivalent to TO_DATE.protected static ExpressionOperatorsybaseToDateToStringOperator()INTERNAL: Build Sybase equivalent to TO_CHAR.protected static ExpressionOperatorsybaseToNumberOperator()INTERNAL: Build Sybase equivalent to TO_NUMBER.protected static ExpressionOperatortrim2Operator()INTERNAL: Build Trim operator.protected static ExpressionOperatortrimOperator()INTERNAL: Use RTRIM(LTRIM(?)) function for trim.booleanuseJDBCStoredProcedureSyntax()Return true if this platform is to use the JDBC supported syntax for executing stored procedures.voidwriteUpdateOriginalFromTempTableSql(java.io.Writer writer, DatabaseTable table, java.util.Collection pkFields, java.util.Collection assignedFields)INTERNAL:-
Methods inherited from class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
addBatch, addStructConverter, allowBindingForSelectClause, 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, getIdentifierQuoteCharacter, getIndexNamePrefix, getInputProcedureToken, getJDBCOuterJoinString, getJDBCType, getJDBCTypeForSetNull, getMaxBatchWritingSize, getMaxForeignKeyNameSize, getMaxIndexNameSize, getMaxUniqueKeyNameSize, getNoWaitString, getObjectFromResultSet, getParameterValueFromDatabaseCall, getParameterValueFromDatabaseCall, getPartitioningCallback, getPingSQL, getProcedureArgument, 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, setShouldBindPartialParameters, 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, shouldBindPartialParameters, 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, isAccess, isAttunity, isCloudscape, isDB2, isDB2Z, isDBase, isDerby, isFirebird, isH2, isHANA, isHSQL, isInformix, isMaxDB, isMySQL, isODBC, isOracle, isOracle9, isPervasive, isPointBase, isPostgreSQL, isSQLAnywhere, isSQLServer, isSymfoware, isTimesTen, isTimesTen7, removeAllSequences, removeSequence, sequencesAfterCloneCleanup, setConversionManager, setDefaultNativeSequenceToTable, setDefaultSeqenceAtNextValue, setDefaultSequence, setEndDelimiter, setSelectSequenceNumberQuery, setSequencePreallocationSize, setSequences, setStartDelimiter, setSupportsReturnGeneratedKeys, setTableQualifier, setTimestampQuery, setUpdateSequenceQuery, shouldNativeSequenceUseTransaction, shouldPrepare, shouldSelectDistinctIncludeOrderBy, shouldSelectIncludeOrderBy, supportsNativeSequenceNumbers, supportsReturnGeneratedKeys, supportsSequenceObjects, toString, usesPlatformDefaultSequence
-
-
-
-
Method Detail
-
initializeConnectionData
public void initializeConnectionData(java.sql.Connection connection) throws java.sql.SQLExceptionDescription copied from class:DatabasePlatformINTERNAL: Allow initialization from the connection.- Overrides:
initializeConnectionDatain classDatabasePlatform- Throws:
java.sql.SQLException
-
getTypeStrings
protected java.util.Map<java.lang.Integer,java.lang.String> 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:
getJDBCTypein classDatabasePlatform
-
appendByteArray
protected void appendByteArray(byte[] bytes, java.io.Writer writer) throws java.io.IOExceptionIf using native SQL then print a byte[] as '0xFF...'- Overrides:
appendByteArrayin classDatabasePlatform- Throws:
java.io.IOException
-
appendDate
protected void appendDate(java.sql.Date date, java.io.Writer writer) throws java.io.IOExceptionAnswer a platform correct string representation of a Date, suitable for SQL generation. Native format: 'yyyy-mm-dd- Overrides:
appendDatein classDatabasePlatform- Throws:
java.io.IOException
-
appendSybaseTimestamp
protected void appendSybaseTimestamp(java.sql.Timestamp timestamp, java.io.Writer writer) throws java.io.IOExceptionWrite 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.IOExceptionAnswer 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:
appendTimein classDatabasePlatform- Throws:
java.io.IOException
-
appendTimestamp
protected void appendTimestamp(java.sql.Timestamp timestamp, java.io.Writer writer) throws java.io.IOExceptionAnswer 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:
appendTimestampin classDatabasePlatform- Throws:
java.io.IOException
-
appendCalendar
protected void appendCalendar(java.util.Calendar calendar, java.io.Writer writer) throws java.io.IOExceptionAnswer 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:
appendCalendarin classDatabasePlatform- Throws:
java.io.IOException
-
appendSybaseCalendar
protected void appendSybaseCalendar(java.util.Calendar calendar, java.io.Writer writer) throws java.io.IOExceptionWrite a timestamp in Sybase specific format ( yyyy-mm-dd-hh.mm.ss.fff)- Throws:
java.io.IOException
-
buildFieldTypes
protected java.util.Hashtable buildFieldTypes()
Description copied from class:DatabasePlatformReturn the mapping of class types to database types for the schema framework.- Overrides:
buildFieldTypesin classDatabasePlatform
-
buildSelectQueryForIdentity
public ValueReadQuery buildSelectQueryForIdentity()
INTERNAL: Build the identity query for native sequencing.- Overrides:
buildSelectQueryForIdentityin 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:
shouldPrintLockingClauseAfterWhereClausein classDatabasePlatform
-
getSelectForUpdateString
public java.lang.String getSelectForUpdateString()
Description copied from class:DatabasePlatformMost database support a syntax. although don't actually lock the row. Some require the OF some don't like it.- Overrides:
getSelectForUpdateStringin classDatabasePlatform
-
getBatchDelimiterString
public java.lang.String getBatchDelimiterString()
Used for batch writing and sp defs.- Overrides:
getBatchDelimiterStringin classDatabasePlatform
-
getCreationInOutputProcedureToken
public java.lang.String getCreationInOutputProcedureToken()
Description copied from class:DatabasePlatformThis method is used to print the required output parameter token for the specific platform. Used when stored procedures are created.- Overrides:
getCreationInOutputProcedureTokenin classDatabasePlatform
-
getCreationOutputProcedureToken
public java.lang.String getCreationOutputProcedureToken()
Description copied from class:DatabasePlatformThis method is used to print the required output parameter token for the specific platform. Used when stored procedures are created.- Overrides:
getCreationOutputProcedureTokenin classDatabasePlatform
-
getInOutputProcedureToken
public java.lang.String getInOutputProcedureToken()
Description copied from class:DatabasePlatformThis method is used to print the output parameter token when stored procedures are called- Overrides:
getInOutputProcedureTokenin classDatabasePlatform
-
getJdbcTypeName
public java.lang.String getJdbcTypeName(int jdbcType)
INTERNAL: Returns the type name corresponding to the jdbc type- Overrides:
getJdbcTypeNamein classDatabasePlatform
-
getMaxFieldNameSize
public int getMaxFieldNameSize()
INTERNAL: returns the maximum number of characters that can be used in a field name on this platform.- Overrides:
getMaxFieldNameSizein classDatabasePlatform
-
getNativeTableInfo
public java.util.Vector getNativeTableInfo(java.lang.String table, java.lang.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 java.lang.String getOutputProcedureToken()
Description copied from class:DatabasePlatformThis method is used to print the output parameter token when stored procedures are called- Overrides:
getOutputProcedureTokenin classDatabasePlatform
-
getProcedureArgumentString
public java.lang.String getProcedureArgumentString()
Used for sp defs.- Overrides:
getProcedureArgumentStringin classDatabasePlatform
-
getProcedureCallHeader
public java.lang.String getProcedureCallHeader()
Used for sp calls.- Overrides:
getProcedureCallHeaderin classDatabasePlatform
-
getProcedureCallTail
public java.lang.String getProcedureCallTail()
Description copied from class:DatabasePlatformUsed for sp calls.- Overrides:
getProcedureCallTailin 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 java.lang.String getStoredProcedureParameterPrefix()
- Overrides:
getStoredProcedureParameterPrefixin classDatabasePlatform
-
getTimestampQuery
public ValueReadQuery getTimestampQuery()
PUBLIC: This method returns the query to select the timestamp from the server for Sybase.- Specified by:
getTimestampQueryin interfacePlatform- Overrides:
getTimestampQueryin classDatasourcePlatform
-
initializePlatformOperators
protected void initializePlatformOperators()
Initialize any platform-specific operators- Overrides:
initializePlatformOperatorsin classDatasourcePlatform
-
modOperator
protected static ExpressionOperator modOperator()
Override the default MOD operator.
-
operatorOuterJoin
protected static ExpressionOperator operatorOuterJoin()
Create the outer join operator for this platform
-
singleArgumentSubstringOperator
protected static ExpressionOperator singleArgumentSubstringOperator()
Override the default SubstringSingleArg operator.
-
sybaseAddMonthsOperator
protected static ExpressionOperator sybaseAddMonthsOperator()
INTERNAL: Function, to add months to a date.
-
sybaseInStringOperator
protected static ExpressionOperator sybaseInStringOperator()
INTERNAL: Build instring operator
-
sybaseToNumberOperator
protected static ExpressionOperator sybaseToNumberOperator()
INTERNAL: Build Sybase equivalent to TO_NUMBER.
-
sybaseToDateToStringOperator
protected static ExpressionOperator sybaseToDateToStringOperator()
INTERNAL: Build Sybase equivalent to TO_CHAR.
-
sybaseToDateOperator
protected static ExpressionOperator sybaseToDateOperator()
INTERNAL: Build Sybase equivalent to TO_DATE.
-
sybaseToCharOperator
protected static ExpressionOperator sybaseToCharOperator()
INTERNAL: Build Sybase equivalent to TO_CHAR.
-
sybaseToCharWithFormatOperator
protected static ExpressionOperator sybaseToCharWithFormatOperator()
INTERNAL: Build Sybase equivalent to TO_CHAR.
-
sybaseLocateOperator
protected static ExpressionOperator sybaseLocateOperator()
INTERNAL: Build the Sybase equivalent to Locate
-
sybaseLocate2Operator
protected static ExpressionOperator sybaseLocate2Operator()
INTERNAL: Build the Sybase equivalent to Locate with a start index. Sybase does not define this, so this gets a little complex...
-
extractOperator
protected static ExpressionOperator extractOperator()
INTERNAL: Derby does not support EXTRACT, but does have DATEPART.
-
trimOperator
protected static ExpressionOperator trimOperator()
INTERNAL: Use RTRIM(LTRIM(?)) function for trim.
-
trim2Operator
protected static ExpressionOperator trim2Operator()
INTERNAL: Build Trim operator.
-
isOutputAllowWithResultSet
public boolean isOutputAllowWithResultSet()
INTERNAL: Return true if output parameters can be built with result sets.- Overrides:
isOutputAllowWithResultSetin classDatabasePlatform
-
isSybase
public boolean isSybase()
- Specified by:
isSybasein interfacePlatform- Overrides:
isSybasein classDatasourcePlatform
-
maximumNumericValues
public java.util.Hashtable<java.lang.Class<? extends java.lang.Number>,java.lang.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:
maximumNumericValuesin classDatabasePlatform
-
minimumNumericValues
public java.util.Hashtable<java.lang.Class<? extends java.lang.Number>,java.lang.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:
minimumNumericValuesin classDatabasePlatform
-
printFieldIdentityClause
public void printFieldIdentityClause(java.io.Writer writer) throws ValidationExceptionAppend the receiver's field 'identity' constraint clause to a writer.- Overrides:
printFieldIdentityClausein classDatabasePlatform- Throws:
ValidationException
-
printFieldNullClause
public void printFieldNullClause(java.io.Writer writer) throws ValidationExceptionAppend the receiver's field 'NULL' constraint clause to a writer.- Overrides:
printFieldNullClausein classDatabasePlatform- Throws:
ValidationException
-
registerOutputParameter
public void registerOutputParameter(java.sql.CallableStatement statement, int index, int jdbcType) throws java.sql.SQLExceptionThis method is used to register output parameter on Callable Statements for Stored Procedures as each database seems to have a different method.- Overrides:
registerOutputParameterin classDatabasePlatform- Throws:
java.sql.SQLException- See Also:
CallableStatement.registerOutParameter(int parameterIndex, int sqlType)
-
registerOutputParameter
public void registerOutputParameter(java.sql.CallableStatement statement, int index, int jdbcType, java.lang.String typeName) throws java.sql.SQLExceptionDescription copied from class:DatabasePlatformThis method is used to register output parameter on CallableStatements for Stored Procedures as each database seems to have a different method.- Overrides:
registerOutputParameterin classDatabasePlatform- Throws:
java.sql.SQLException- See Also:
CallableStatement.registerOutParameter(int parameterIndex, int sqlType, String typeName)
-
requiresProcedureCallBrackets
public boolean requiresProcedureCallBrackets()
USed for sp calls.- Overrides:
requiresProcedureCallBracketsin classDatabasePlatform
-
requiresProcedureCallOuputToken
public boolean requiresProcedureCallOuputToken()
Used for sp calls. Sybase must print output after output params.- Overrides:
requiresProcedureCallOuputTokenin classDatabasePlatform
-
requiresTypeNameToRegisterOutputParameter
public boolean requiresTypeNameToRegisterOutputParameter()
INTERNAL: Indicates whether the version of CallableStatement.registerOutputParameter method that takes type name should be used.- Overrides:
requiresTypeNameToRegisterOutputParameterin classDatabasePlatform
-
shouldPrintInOutputTokenBeforeType
public boolean shouldPrintInOutputTokenBeforeType()
Description copied from class:DatabasePlatformThis is required in the construction of the stored procedures with output parameters- Overrides:
shouldPrintInOutputTokenBeforeTypein classDatabasePlatform
-
shouldPrintOutputTokenBeforeType
public boolean shouldPrintOutputTokenBeforeType()
Description copied from class:DatabasePlatformThis is required in the construction of the stored procedures with output parameters- Overrides:
shouldPrintOutputTokenBeforeTypein classDatabasePlatform
-
shouldUseJDBCOuterJoinSyntax
public boolean shouldUseJDBCOuterJoinSyntax()
JDBC defines and outer join syntax, many drivers do not support this. So we normally avoid it.- Overrides:
shouldUseJDBCOuterJoinSyntaxin classDatabasePlatform
-
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:
supportsIdentityin 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:
supportsDeleteOnCascadein classDatabasePlatform
-
supportsGlobalTempTables
public boolean supportsGlobalTempTables()
INTERNAL:- Overrides:
supportsGlobalTempTablesin classDatabasePlatform
-
getCreateTempTableSqlPrefix
protected java.lang.String getCreateTempTableSqlPrefix()
INTERNAL:- Overrides:
getCreateTempTableSqlPrefixin classDatabasePlatform
-
getTempTableForTable
public DatabaseTable getTempTableForTable(DatabaseTable table)
INTERNAL:- Overrides:
getTempTableForTablein classDatabasePlatform- Returns:
- DatabaseTable temorary table
-
writeUpdateOriginalFromTempTableSql
public void writeUpdateOriginalFromTempTableSql(java.io.Writer writer, DatabaseTable table, java.util.Collection pkFields, java.util.Collection assignedFields) throws java.io.IOExceptionINTERNAL:- Overrides:
writeUpdateOriginalFromTempTableSqlin classDatabasePlatform- Throws:
java.io.IOException
-
-