|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
org.eclipse.persistence.platform.database.DatabasePlatform
org.eclipse.persistence.platform.database.SymfowarePlatform
public class SymfowarePlatform
Symfoware Server
http://wiki.eclipse.org/EclipseLink/Development/Incubator/Extensions/SymfowarePlatform
Test results: http://wiki.eclipse.org/EclipseLink/Development/DatabasePlatform/SymfowarePlatform/TestResults
Contributed by: Fujitsu Ltd.
Contributed under bug: 288715
Field Summary |
---|
Fields inherited from class org.eclipse.persistence.platform.database.DatabasePlatform |
---|
DEFAULT_VARCHAR_SIZE |
Fields inherited from class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform |
---|
DEFAULT_MAX_BATCH_WRITING_SIZE, DEFAULT_PARAMETERIZED_MAX_BATCH_WRITING_SIZE, Types_NCLOB |
Constructor Summary | |
---|---|
SymfowarePlatform()
|
Method Summary | |
---|---|
String |
buildCreateIndex(String fullTableName,
String indexName,
String... columnNames)
Return the CREATE INDEX string for this platform. |
String |
buildDropIndex(String fullTableName,
String indexName)
Return the DROP INDEX string for this platform. |
ValueReadQuery |
buildSelectQueryForSequenceObject(String seqName,
Integer size)
Produce a DataReadQuery which updates(!) the sequence number in the DB and returns it. |
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. |
String |
getCreateTempTableSqlPrefix()
Returns the beginning of the SQL string to create a temporary table. |
String |
getDefaultSequenceTableName()
Returns the table name used by TableSequence by default. |
String |
getInOutputProcedureToken()
This method is used to print the output parameter token when stored procedures are called. |
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). |
String |
getProcedureAsString()
Symfoware does not use the AS token. |
String |
getProcedureBeginString()
Used for stored procedure definitions. |
String |
getProcedureCallHeader()
Used for stored procedure calls. |
String |
getProcedureCallTail()
Used for stored procedure calls. |
String |
getProcedureEndString()
Used for stored procedure definitions. |
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. This allows statements to disable binding only in these cases. |
boolean |
isForUpdateCompatibleWithDistinct()
Indicates whether SELECT DISTINCT ... |
boolean |
isSymfoware()
Identifies this database platform as Symfoware's. |
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 ( |
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. |
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. Literal binding is enabled for Symfoware in general. |
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. E.g. |
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. Symfoware platform currently only supports FOR UPDATE locking, which cannot be applied to queries that select from multiple tables. |
boolean |
supportsLockingQueriesWithMultipleTables()
Indicates whether locking clause could be applied to the query that has more than one table. Symfoware platform currently only supports FOR UPDATE locking, which cannot be applied to queries that select from multiple tables. |
boolean |
supportsSequenceObjects()
Indicates whether the platform supports sequence objects. Symfoware does through global sequence objects. |
boolean |
supportsStoredFunctions()
Indicates whether the platform supports stored functions. Symfoware does. |
boolean |
supportsUniqueKeyConstraints()
Symfoware supports unique key constraints, so returns true. Do note that unique constraints cannot be added/removed using "ALTER TABLE ADD/DROP CONSTRAINT" syntax. |
boolean |
wasFailureCommunicationBased(SQLException exception,
Connection connection,
org.eclipse.persistence.internal.sessions.AbstractSession sessionForProfile)
Fail-over is not implemented on platform. |
Methods inherited from class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform |
---|
addBatch, addStructConverter, allowsSizeInProcedureArguments, appendLiteralToCall, appendParameter, appendParameterInternal, autoCommit, beginTransaction, buildCallWithReturning, buildProcedureCallString, buildSelectQueryForIdentity, buildSelectQueryForIdentity, buildSelectQueryForSequenceObject, buildSequenceObjectAlterIncrementWriter, buildSequenceObjectCreationWriter, buildSequenceObjectDeletionWriter, canBatchWriteWithOptimisticLocking, canBuildCallWithReturning, commitTransaction, convertToDatabaseType, copyInto, createArray, createArray, createStruct, createStruct, dontBindUpdateAllQueryUsingTempTables, executeBatch, executeStoredProcedure, freeTemporaryObject, getAssignmentString, getBatchBeginString, getBatchDelimiterString, getBatchEndString, getCastSizeForVarcharParameter, getClassTypes, getConnection, getConstraintDeletionString, getCreateViewString, getCreationInOutputProcedureToken, getCreationOutputProcedureToken, getCursorCode, getCustomModifyValueForCall, getFieldTypeDefinition, getFieldTypes, getFunctionCallHeader, getIdentifierQuoteCharacter, getJDBCOuterJoinString, getJDBCType, getJDBCType, getJdbcTypeName, getMaxBatchWritingSize, getMaxForeignKeyNameSize, getMaxIndexNameSize, getMaxUniqueKeyNameSize, getNoWaitString, getObjectFromResultSet, getOutputProcedureToken, getPingSQL, getProcedureArgumentSetter, getProcedureArgumentString, getQualifiedName, getQualifiedSequenceTableName, getRefValue, getRefValue, getSelectForUpdateNoWaitString, getSelectForUpdateOfString, getSelectForUpdateWaitString, getSequenceCounterFieldName, getSequenceNameFieldName, getSequencePreallocationSize, getSequenceTableName, getStatementCacheSize, getStoredProcedureParameterPrefix, getStoredProcedureTerminationToken, getStringBindingSize, getStructConverters, getTempTableForTable, getTransactionIsolation, getTypeConverters, initialize, isAlterSequenceObjectSupported, isCastRequired, isInformixOuterJoin, isLockTimeoutException, isNullAllowedInSelectClause, isXDBDocument, maximumNumericValues, minimumNumericValues, prepareBatchStatement, printFieldIdentityClause, printFieldNotNullClause, printFieldNullClause, printFieldTypeSize, printFieldUnique, printValuelist, printValuelist, registerOutputParameter, requiresNamedPrimaryKeyConstraints, requiresProcedureCallBrackets, requiresProcedureCallOuputToken, requiresTypeNameToRegisterOutputParameter, rollbackTransaction, setCastSizeForVarcharParameter, setCursorCode, setIsCastRequired, setMaxBatchWritingSize, setParameterValueInDatabaseCall, setPingSQL, setPrintOuterJoinInWhereClause, setSequenceCounterFieldName, setSequenceNameFieldName, setSequenceTableName, setShouldBindAllParameters, setShouldBindLiterals, setShouldCacheAllStatements, setShouldForceFieldNamesToUpperCase, setShouldIgnoreCaseOnFieldComparisons, setShouldOptimizeDataConversion, setShouldTrimStrings, setShouldUseRownumFiltering, setStatementCacheSize, setStringBindingSize, setSupportsAutoCommit, setTransactionIsolation, setUsesBatchWriting, setUsesByteArrayBinding, setUsesJDBCBatchWriting, setUsesNativeBatchWriting, setUsesNativeSQL, setUsesStreamsForBinding, setUsesStringBinding, shouldBindAllParameters, shouldCacheAllStatements, shouldForceFieldNamesToUpperCase, shouldIgnoreCaseOnFieldComparisons, shouldIgnoreException, shouldNativeSequenceUseTransaction, shouldOptimizeDataConversion, shouldPrintAliasForUpdate, shouldPrintConstraintNameAfter, shouldPrintFieldIdentityClause, shouldPrintInOutputTokenBeforeType, shouldPrintLockingClauseAfterWhereClause, shouldPrintOuterJoinInWhereClause, shouldTrimStrings, shouldUseCustomModifyForCall, shouldUseJDBCOuterJoinSyntax, shouldUseRownumFiltering, supportsAutoCommit, supportsAutoConversionToNumericForArithmeticOperations, supportsIdentity, supportsLocalTempTables, supportsNativeSequenceNumbers, supportsNestingOuterJoins, supportsOuterJoinsWithBrackets, supportsPrimaryKeyConstraint, supportsTempTables, supportsUniqueColumns, usesBatchWriting, usesByteArrayBinding, usesJDBCBatchWriting, usesNativeBatchWriting, usesNativeSQL, usesSequenceTable, usesStreamsForBinding, usesStringBinding, writeCleanUpTempTableSql, writeCreateTempTableSql, writeDeleteFromTargetTableUsingTempTableSql, writeInsertIntoTableSql, writeLOB, writeParameterMarker, writeUpdateOriginalFromTempTableSql |
Methods inherited from class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform |
---|
addSequence, clone, convertObject, createConnectionCustomizer, getConversionManager, getDataTypesConvertedFrom, getDataTypesConvertedTo, getDefaultSequence, getDefaultSequenceToWrite, getEndDelimiter, getOperator, getPlatformOperators, getSelectSequenceQuery, getSequence, getSequences, getSequencesToWrite, getStartDelimiter, getTableQualifier, getTimestampFromServer, getUpdateSequenceQuery, hasDefaultSequence, isAccess, isAttunity, isCloudscape, isDB2, isDBase, isDerby, isFirebird, isH2, isHSQL, isInformix, isMySQL, isODBC, isOracle, isOracle9, isPointBase, isPostgreSQL, isSQLAnywhere, isSQLServer, isSybase, isTimesTen, isTimesTen7, removeAllSequences, removeSequence, setConversionManager, setDefaultSequence, setEndDelimiter, setSelectSequenceNumberQuery, setSequencePreallocationSize, setSequences, setStartDelimiter, setTableQualifier, setTimestampQuery, setUpdateSequenceQuery, toString, usesPlatformDefaultSequence |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public SymfowarePlatform()
Method Detail |
---|
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
MySQLPlatform
public ValueReadQuery buildSelectQueryForSequenceObject(String seqName, Integer size)
buildSelectQueryForSequenceObject
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
seqName
- known by Symfoware to be a defined sequencesize
- size of sequence
public String buildCreateIndex(String fullTableName, String indexName, 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 indexcolumnNames
- list of columns the index is created forpublic String buildDropIndex(String fullTableName, String indexName)
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 indexpublic String getCreateTempTableSqlPrefix()
getCreateTempTableSqlPrefix
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
shouldAlwaysUseTempStorageForModifyAll()
public String getDefaultSequenceTableName()
getDefaultSequenceTableName
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public String getInOutputProcedureToken()
getInOutputProcedureToken
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public String getInputProcedureToken()
getInputProcedureToken
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public int getMaxFieldNameSize()
getMaxFieldNameSize
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public String getProcedureAsString()
getProcedureAsString
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public String getProcedureCallHeader()
getProcedureCallHeader
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public String getProcedureCallTail()
getProcedureCallTail
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public String getProcedureBeginString()
getProcedureBeginString
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public String getProcedureEndString()
getProcedureEndString
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
public 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 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 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.DatabasePlatform
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(SQLException exception, Connection connection, org.eclipse.persistence.internal.sessions.AbstractSession sessionForProfile)
wasFailureCommunicationBased
in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |