public class SymfowarePlatform extends DatabasePlatform
Developed on Symfoware Server V10
Initial SRG Passes on Symfoware Server V10
Feature Testing
----------------------
Limitations
----------------
Additional Notes
----------------
DEFAULT_VARCHAR_SIZE
Constructor and Description |
---|
SymfowarePlatform() |
Modifier and Type | Method and Description |
---|---|
java.lang.String |
buildCreateIndex(java.lang.String fullTableName, java.lang.String indexName, java.lang.String qualifier, boolean isUnique, java.lang.String... columnNames)
Return the CREATE INDEX string for this platform.
|
java.lang.String |
buildDropIndex(java.lang.String fullTableName, java.lang.String indexName, java.lang.String qualifier)
Return the DROP INDEX string for this platform.
|
ValueReadQuery |
buildSelectQueryForSequenceObject(java.lang.String seqName, java.lang.Integer size)
Produce a DataReadQuery which updates(!)
|
int |
computeMaxRowsForSQL(int firstResultIndex, int maxResults)
Use the JDBC maxResults and firstResultIndex setting to compute a value to use when limiting the results of a query in SQL.
|
java.lang.String |
getCreateTempTableSqlPrefix()
Returns the beginning of the SQL string to create a temporary table.
|
java.lang.String |
getDefaultSequenceTableName()
Returns the table name used by TableSequence by default.
|
java.lang.String |
getIndexNamePrefix(boolean isUniqueSetOnField)
Used to allow platforms to define their own index prefixes
|
java.lang.String |
getInOutputProcedureToken()
This method is used to print the output parameter token when stored procedures are called.
|
java.lang.String |
getInputProcedureToken()
Used for stored procedure creation: Prefix for INPUT parameters.
|
int |
getMaxFieldNameSize()
Returns the maximum number of single byte characters that can be used in a field name on this platform, assuming DEFAULT_DSI_NAME=CODE is specified in Symfoware's operating environment file for the system (see Symfoware manual).
|
java.lang.String |
getProcedureAsString()
Symfoware does not use the AS token.
|
java.lang.String |
getProcedureBeginString()
Used for stored procedure definitions.
|
java.lang.String |
getProcedureCallHeader()
Used for stored procedure calls.
|
java.lang.String |
getProcedureCallTail()
Used for stored procedure calls.
|
java.lang.String |
getProcedureEndString()
Used for stored procedure definitions.
|
java.lang.String |
getSelectForUpdateString()
Symfoware supports "for update" for row locking.
|
ValueReadQuery |
getTimestampQuery()
This method returns the query to select the timestamp from the database.
|
boolean |
isDynamicSQLRequiredForFunctions()
Symfoware does not support the use of multiple parameters in certain functions.
|
boolean |
isForUpdateCompatibleWithDistinct()
Indicates whether SELECT DISTINCT ...
|
boolean |
isSymfoware()
Identifies this database platform as Symfoware's.
|
long |
minimumTimeIncrement()
INTERNAL: Returns the minimum time increment supported by the platform.
|
void |
printSQLSelectStatement(org.eclipse.persistence.internal.databaseaccess.DatabaseCall call, org.eclipse.persistence.internal.expressions.ExpressionSQLPrinter printer, org.eclipse.persistence.internal.expressions.SQLSelectStatement statement)
Print the pagination SQL using Symfoware syntax " WITH OPTION LIMIT (<max>)".
|
boolean |
requiresProcedureBrackets()
Used for stored procedure creation: Symfoware needs brackets around arguments declaration even if no arguments exist, and so returns true.
|
boolean |
requiresUniqueConstraintCreationOnTableCreate()
Used for table creation.
|
void |
retrieveFirstPrimaryKeyOrOne(ReportQuery subselect)
INTERNAL: Used by Exists queries because they just need to select a single row.
|
boolean |
shouldAlwaysUseTempStorageForModifyAll()
Symfoware does not support the default syntax generated for update-all and delete-all queries as they can include the same table in the FROM clause of the main and the sub-queries.
|
boolean |
shouldBindLiterals()
Allows platform to choose whether to bind literals in SQL statements or not.
|
boolean |
shouldCreateIndicesForPrimaryKeys()
Used for table creation.
|
boolean |
shouldCreateIndicesOnUniqueKeys()
Used for table creation.
|
boolean |
shouldPrintInputTokenAtStart()
Used for stored procedure creation: Some platforms want to print prefix for INPUT arguments BEFORE NAME.
|
boolean |
shouldPrintOutputTokenAtStart()
This is required in the construction of the stored procedures with output parameters
|
boolean |
shouldPrintOutputTokenBeforeType()
This is required in the construction of the stored procedures with output parameters
|
boolean |
shouldPrintStoredProcedureArgumentNameInCall()
Symfoware stored procedure calls do not require the argument name be printed in the call string.
|
boolean |
shouldPrintStoredProcedureVariablesAfterBeginString()
Used for stored procedure creation: Symfoware declares variables AFTER the procedure body's BEGIN string.
|
boolean |
supportsANSIInnerJoinSyntax()
Indicates whether the ANSI syntax for inner joins (e.g.
|
boolean |
supportsForeignKeyConstraints()
Symfoware does not support foreign key constraint syntax, so returns false.
|
boolean |
supportsGlobalTempTables()
Indicates whether the platform supports global temporary tables.
|
boolean |
supportsIndividualTableLocking()
Indicates whether locking clause could be selectively applied only to some tables in a ReadQuery.
|
boolean |
supportsLockingQueriesWithMultipleTables()
Indicates whether locking clause could be applied to the query that has more than one table.
|
boolean |
supportsSequenceObjects()
Indicates whether the platform supports sequence objects.
|
boolean |
supportsStoredFunctions()
Indicates whether the platform supports stored functions.
|
boolean |
supportsUniqueKeyConstraints()
Symfoware supports unique key constraints, so returns true.
|
boolean |
wasFailureCommunicationBased(java.sql.SQLException exception, java.sql.Connection connection, org.eclipse.persistence.internal.sessions.AbstractSession sessionForProfile)
Fail-over is not implemented on platform.
|
addBatch, addStructConverter, allowsSizeInProcedureArguments, appendLiteralToCall, appendParameter, appendParameterInternal, autoCommit, beginTransaction, buildBatchCriteria, buildBatchCriteriaForComplexId, buildCallWithReturning, buildCreateIndex, buildDropIndex, buildProcedureCallString, buildSequenceObjectAlterIncrementWriter, buildSequenceObjectCreationWriter, buildSequenceObjectDeletionWriter, canBatchWriteWithOptimisticLocking, canBuildCallWithReturning, commitTransaction, convertToDatabaseType, copyInto, createArray, createArray, createStruct, createStruct, dontBindUpdateAllQueryUsingTempTables, executeBatch, executeStoredProcedure, freeTemporaryObject, getAssignmentString, getBatchBeginString, getBatchDelimiterString, getBatchEndString, getBatchRowCountAssignString, getBatchRowCountDeclareString, getBatchRowCountReturnString, getBatchWritingMechanism, getCastSizeForVarcharParameter, getClassTypes, getConnection, getConstraintDeletionString, getCreateDatabaseSchemaString, getCreateViewString, getCreationInOutputProcedureToken, getCreationOutputProcedureToken, getCursorCode, getCustomModifyValueForCall, getDropCascadeString, getDropDatabaseSchemaString, getFieldTypeDefinition, getFieldTypes, getFunctionCallHeader, getIdentifierQuoteCharacter, getJDBCOuterJoinString, getJDBCType, getJDBCType, getJDBCTypeForSetNull, getJdbcTypeName, getMaxBatchWritingSize, getMaxForeignKeyNameSize, getMaxIndexNameSize, getMaxUniqueKeyNameSize, getNoWaitString, getObjectFromResultSet, getOutputProcedureToken, getPartitioningCallback, getPingSQL, getProcedureArgumentSetter, getProcedureArgumentString, getQualifiedName, getQualifiedSequenceTableName, getRefValue, getRefValue, getSelectForUpdateNoWaitString, getSelectForUpdateOfString, getSelectForUpdateWaitString, getSequenceCounterFieldName, getSequenceNameFieldName, getSequencePreallocationSize, getSequenceTableName, getStatementCacheSize, getStoredProcedureParameterPrefix, getStoredProcedureTerminationToken, getStringBindingSize, getStructConverters, getTableCreationSuffix, getTempTableForTable, getTransactionIsolation, getTypeConverters, getUniqueConstraintDeletionString, getVPDClearIdentifierQuery, getVPDCreationFunctionString, getVPDCreationPolicyString, getVPDDeletionString, getVPDSetIdentifierQuery, hasPartitioningCallback, initialize, initializeConnectionData, isAlterSequenceObjectSupported, isCastRequired, isInformixOuterJoin, isJDBCExecuteCompliant, isLobCompatibleWithDistinct, isLockTimeoutException, isNullAllowedInSelectClause, isOutputAllowWithResultSet, isRowCountOutputParameterRequired, isXDBDocument, maximumNumericValues, minimumNumericValues, prepareBatchStatement, printFieldIdentityClause, printFieldNotNullClause, printFieldNullClause, printFieldTypeSize, printFieldUnique, printStoredFunctionReturnKeyWord, printValuelist, printValuelist, registerOutputParameter, requiresNamedPrimaryKeyConstraints, requiresProcedureCallBrackets, requiresProcedureCallOuputToken, requiresTableInIndexDropDDL, requiresTypeNameToRegisterOutputParameter, rollbackTransaction, setBatchWritingMechanism, setCastSizeForVarcharParameter, setCursorCode, setDriverName, setIsCastRequired, setMaxBatchWritingSize, setParameterValueInDatabaseCall, setPartitioningCallback, setPingSQL, setPrintInnerJoinInWhereClause, setPrintOuterJoinInWhereClause, setSequenceCounterFieldName, setSequenceNameFieldName, setSequenceTableName, setShouldBindAllParameters, setShouldBindLiterals, setShouldCacheAllStatements, setShouldCreateIndicesOnForeignKeys, setShouldForceFieldNamesToUpperCase, setShouldIgnoreCaseOnFieldComparisons, setShouldOptimizeDataConversion, setShouldTrimStrings, setShouldUseRownumFiltering, setStatementCacheSize, setStringBindingSize, setSupportsAutoCommit, setTableCreationSuffix, setTransactionIsolation, setUseJDBCStoredProcedureSyntax, setUsesBatchWriting, setUsesByteArrayBinding, setUsesJDBCBatchWriting, setUsesNativeBatchWriting, setUsesNativeSQL, setUsesStreamsForBinding, setUsesStringBinding, shouldBindAllParameters, shouldCacheAllStatements, shouldCreateIndicesOnForeignKeys, shouldForceFieldNamesToUpperCase, shouldIgnoreCaseOnFieldComparisons, shouldIgnoreException, shouldOptimizeDataConversion, shouldPrintAliasForUpdate, shouldPrintConstraintNameAfter, shouldPrintFieldIdentityClause, shouldPrintInnerJoinInWhereClause, shouldPrintInOutputTokenBeforeType, shouldPrintLockingClauseAfterWhereClause, shouldPrintOuterJoinInWhereClause, shouldTrimStrings, shouldUseCustomModifyForCall, shouldUseJDBCOuterJoinSyntax, shouldUseRownumFiltering, supportsAutoCommit, supportsAutoConversionToNumericForArithmeticOperations, supportsCountDistinctWithMultipleFields, supportsDeleteOnCascade, supportsIndexes, supportsLocalTempTables, supportsNestingOuterJoins, supportsOuterJoinsWithBrackets, supportsPrimaryKeyConstraint, supportsTempTables, supportsUniqueColumns, supportsVPD, usesBatchWriting, usesByteArrayBinding, usesJDBCBatchWriting, usesNativeBatchWriting, usesNativeSQL, usesSequenceTable, usesStreamsForBinding, usesStringBinding, writeAddColumnClause, writeCleanUpTempTableSql, writeCreateTempTableSql, writeDeleteFromTargetTableUsingTempTableSql, writeInsertIntoTableSql, writeLOB, writeParameterMarker, writeTableCreationSuffix, writeUpdateOriginalFromTempTableSql
addSequence, addSequence, buildNativeCall, buildSelectQueryForIdentity, buildSelectQueryForIdentity, buildSelectQueryForSequenceObject, clone, convertObject, createConnectionCustomizer, getConversionManager, getDataTypesConvertedFrom, getDataTypesConvertedTo, getDefaultNativeSequenceToTable, getDefaultSequence, getDefaultSequenceToWrite, getEndDelimiter, getOperator, getPlatformOperators, getSelectSequenceQuery, getSequence, getSequences, getSequencesToWrite, getStartDelimiter, getTableQualifier, getTimestampFromServer, getUpdateSequenceQuery, hasDefaultSequence, initializeDefaultQueries, isAccess, isAttunity, isCloudscape, isDB2, isDBase, isDerby, isFirebird, isH2, isHANA, isHSQL, isInformix, isMaxDB, isMySQL, isODBC, isOracle, isOracle9, isPervasive, isPointBase, isPostgreSQL, isSQLAnywhere, isSQLServer, isSybase, isTimesTen, isTimesTen7, removeAllSequences, removeSequence, setConversionManager, setDefaultNativeSequenceToTable, setDefaultSequence, setEndDelimiter, setSelectSequenceNumberQuery, setSequencePreallocationSize, setSequences, setStartDelimiter, setTableQualifier, setTimestampQuery, setUpdateSequenceQuery, shouldNativeSequenceUseTransaction, shouldPrepare, shouldSelectDistinctIncludeOrderBy, shouldSelectIncludeOrderBy, supportsIdentity, supportsNativeSequenceNumbers, toString, usesPlatformDefaultSequence
public boolean isDynamicSQLRequiredForFunctions()
isDynamicSQLRequiredForFunctions
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public boolean isForUpdateCompatibleWithDistinct()
isForUpdateCompatibleWithDistinct
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public boolean isSymfoware()
isSymfoware
in interface org.eclipse.persistence.internal.databaseaccess.Platform
isSymfoware
in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
public int computeMaxRowsForSQL(int firstResultIndex, int maxResults)
1. MaxRows is the index of the last row to be returned (like JDBC maxResults) 2. MaxRows is the number of rows to be returnedSymfoware uses case #2 and therefore the maxResults has to be altered based on the firstResultIndex.
computeMaxRowsForSQL
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public ValueReadQuery buildSelectQueryForSequenceObject(java.lang.String seqName, java.lang.Integer size)
buildSelectQueryForSequenceObject
in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
seqName
- known by Symfoware to be a defined sequencesize
- size of sequencepublic java.lang.String buildCreateIndex(java.lang.String fullTableName, java.lang.String indexName, java.lang.String qualifier, boolean isUnique, java.lang.String... columnNames)
buildCreateIndex
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
fullTableName
- qualified name of the table the index is to be created onindexName
- name of the indexqualifier
- qualifier to construct qualified name of index if neededisUnique
- Indicates whether uniqe index is createdcolumnNames
- one or more columns the index is created forpublic java.lang.String buildDropIndex(java.lang.String fullTableName, java.lang.String indexName, java.lang.String qualifier)
buildDropIndex
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
fullTableName
- qualified name of the table the index is to be created onindexName
- name of the indexqualifier
- qualifier to construct qualified name of index if neededpublic java.lang.String getCreateTempTableSqlPrefix()
getCreateTempTableSqlPrefix
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
shouldAlwaysUseTempStorageForModifyAll()
public java.lang.String getDefaultSequenceTableName()
getDefaultSequenceTableName
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public java.lang.String getIndexNamePrefix(boolean isUniqueSetOnField)
getIndexNamePrefix
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
isUniqueField
-public java.lang.String getInOutputProcedureToken()
getInOutputProcedureToken
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public java.lang.String getInputProcedureToken()
getInputProcedureToken
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public int getMaxFieldNameSize()
getMaxFieldNameSize
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public java.lang.String getProcedureAsString()
getProcedureAsString
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public java.lang.String getProcedureCallHeader()
getProcedureCallHeader
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public java.lang.String getProcedureCallTail()
getProcedureCallTail
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public java.lang.String getProcedureBeginString()
getProcedureBeginString
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public java.lang.String getProcedureEndString()
getProcedureEndString
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public java.lang.String getSelectForUpdateString()
getSelectForUpdateString
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public ValueReadQuery getTimestampQuery()
getTimestampQuery
in interface org.eclipse.persistence.internal.databaseaccess.Platform
getTimestampQuery
in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
public long minimumTimeIncrement()
minimumTimeIncrement
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public void printSQLSelectStatement(org.eclipse.persistence.internal.databaseaccess.DatabaseCall call, org.eclipse.persistence.internal.expressions.ExpressionSQLPrinter printer, org.eclipse.persistence.internal.expressions.SQLSelectStatement statement)
printSQLSelectStatement
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public boolean requiresProcedureBrackets()
requiresProcedureBrackets
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public boolean requiresUniqueConstraintCreationOnTableCreate()
requiresUniqueConstraintCreationOnTableCreate
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public void retrieveFirstPrimaryKeyOrOne(ReportQuery subselect)
retrieveFirstPrimaryKeyOrOne
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
subselect
-SymfowarePlatform
public boolean shouldAlwaysUseTempStorageForModifyAll()
shouldAlwaysUseTempStorageForModifyAll
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public boolean shouldBindLiterals()
shouldBindLiterals
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
isDynamicSQLRequiredForFunctions()
public boolean shouldCreateIndicesForPrimaryKeys()
shouldCreateIndicesForPrimaryKeys
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public boolean shouldCreateIndicesOnUniqueKeys()
shouldCreateIndicesOnUniqueKeys
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public boolean shouldPrintInputTokenAtStart()
shouldPrintInputTokenAtStart
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public boolean shouldPrintOutputTokenBeforeType()
shouldPrintOutputTokenBeforeType
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public boolean shouldPrintOutputTokenAtStart()
shouldPrintOutputTokenAtStart
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public boolean shouldPrintStoredProcedureArgumentNameInCall()
shouldPrintStoredProcedureArgumentNameInCall
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public boolean shouldPrintStoredProcedureVariablesAfterBeginString()
shouldPrintStoredProcedureVariablesAfterBeginString
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public boolean supportsANSIInnerJoinSyntax()
supportsANSIInnerJoinSyntax
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public boolean supportsForeignKeyConstraints()
supportsForeignKeyConstraints
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public boolean supportsGlobalTempTables()
supportsGlobalTempTables
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
shouldAlwaysUseTempStorageForModifyAll()
public boolean supportsIndividualTableLocking()
supportsIndividualTableLocking
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public boolean supportsLockingQueriesWithMultipleTables()
supportsLockingQueriesWithMultipleTables
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public boolean supportsSequenceObjects()
supportsSequenceObjects
in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
public boolean supportsStoredFunctions()
supportsStoredFunctions
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public boolean supportsUniqueKeyConstraints()
supportsUniqueKeyConstraints
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
requiresUniqueConstraintCreationOnTableCreate()
public boolean wasFailureCommunicationBased(java.sql.SQLException exception, java.sql.Connection connection, org.eclipse.persistence.internal.sessions.AbstractSession sessionForProfile)
wasFailureCommunicationBased
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform