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, writeUpdateOriginalFromTempTableSqladdSequence, 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, usesPlatformDefaultSequencepublic boolean isDynamicSQLRequiredForFunctions()
isDynamicSQLRequiredForFunctions in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean isForUpdateCompatibleWithDistinct()
isForUpdateCompatibleWithDistinct in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean isSymfoware()
isSymfoware in interface org.eclipse.persistence.internal.databaseaccess.PlatformisSymfoware 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.DatabasePlatformpublic ValueReadQuery buildSelectQueryForSequenceObject(java.lang.String seqName, java.lang.Integer size)
buildSelectQueryForSequenceObject in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatformseqName - known by Symfoware to be a defined sequencesize - size of sequence
public 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.DatabasePlatformfullTableName - 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 for
public java.lang.String buildDropIndex(java.lang.String fullTableName,
java.lang.String indexName,
java.lang.String qualifier)
buildDropIndex in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformfullTableName - 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.DatabasePlatformshouldAlwaysUseTempStorageForModifyAll()public java.lang.String getDefaultSequenceTableName()
getDefaultSequenceTableName in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic java.lang.String getIndexNamePrefix(boolean isUniqueSetOnField)
getIndexNamePrefix in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformisUniqueField -public java.lang.String getInOutputProcedureToken()
getInOutputProcedureToken in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic java.lang.String getInputProcedureToken()
getInputProcedureToken in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic int getMaxFieldNameSize()
getMaxFieldNameSize in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic java.lang.String getProcedureAsString()
getProcedureAsString in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic java.lang.String getProcedureCallHeader()
getProcedureCallHeader in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic java.lang.String getProcedureCallTail()
getProcedureCallTail in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic java.lang.String getProcedureBeginString()
getProcedureBeginString in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic java.lang.String getProcedureEndString()
getProcedureEndString in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic java.lang.String getSelectForUpdateString()
getSelectForUpdateString in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic ValueReadQuery getTimestampQuery()
getTimestampQuery in interface org.eclipse.persistence.internal.databaseaccess.PlatformgetTimestampQuery in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatformpublic 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.DatabasePlatformpublic boolean requiresProcedureBrackets()
requiresProcedureBrackets in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean requiresUniqueConstraintCreationOnTableCreate()
requiresUniqueConstraintCreationOnTableCreate in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic void retrieveFirstPrimaryKeyOrOne(ReportQuery subselect)
retrieveFirstPrimaryKeyOrOne in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformsubselect -SymfowarePlatformpublic boolean shouldAlwaysUseTempStorageForModifyAll()
shouldAlwaysUseTempStorageForModifyAll in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean shouldBindLiterals()
shouldBindLiterals in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformisDynamicSQLRequiredForFunctions()public boolean shouldCreateIndicesForPrimaryKeys()
shouldCreateIndicesForPrimaryKeys in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean shouldCreateIndicesOnUniqueKeys()
shouldCreateIndicesOnUniqueKeys in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean shouldPrintInputTokenAtStart()
shouldPrintInputTokenAtStart in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean shouldPrintOutputTokenBeforeType()
shouldPrintOutputTokenBeforeType in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean shouldPrintOutputTokenAtStart()
shouldPrintOutputTokenAtStart in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean shouldPrintStoredProcedureArgumentNameInCall()
shouldPrintStoredProcedureArgumentNameInCall in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean shouldPrintStoredProcedureVariablesAfterBeginString()
shouldPrintStoredProcedureVariablesAfterBeginString in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean supportsANSIInnerJoinSyntax()
supportsANSIInnerJoinSyntax in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean supportsForeignKeyConstraints()
supportsForeignKeyConstraints in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean supportsGlobalTempTables()
supportsGlobalTempTables in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformshouldAlwaysUseTempStorageForModifyAll()public boolean supportsIndividualTableLocking()
supportsIndividualTableLocking in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean supportsLockingQueriesWithMultipleTables()
supportsLockingQueriesWithMultipleTables in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean supportsSequenceObjects()
supportsSequenceObjects in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatformpublic boolean supportsStoredFunctions()
supportsStoredFunctions in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformpublic boolean supportsUniqueKeyConstraints()
supportsUniqueKeyConstraints in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformrequiresUniqueConstraintCreationOnTableCreate()
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