Class FirebirdPlatform
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.FirebirdPlatform
- All Implemented Interfaces:
- Serializable,- Cloneable,- org.eclipse.persistence.internal.core.databaseaccess.CorePlatform<org.eclipse.persistence.internal.helper.ConversionManager>,- org.eclipse.persistence.internal.databaseaccess.Platform
- See Also:
- 
Field SummaryFields inherited from class org.eclipse.persistence.platform.database.DatabasePlatformDEFAULT_VARCHAR_SIZEFields inherited from class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformbatchWritingMechanism, 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, useJDBCStoredProcedureSyntax, useNationalCharacterVarying, useRownumFiltering, usesBatchWriting, usesByteArrayBinding, usesJDBCBatchWriting, usesNativeBatchWriting, usesNativeSQL, usesStreamsForBinding, usesStringBindingFields inherited from class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatformconversionManager, dataTypesConvertedFromAClass, dataTypesConvertedToAClass, defaultNativeSequenceToTable, defaultSeqenceAtNextValue, defaultSequence, endDelimiter, platformOperators, sequences, sequencesLock, startDelimiter, supportsReturnGeneratedKeys, tableQualifier, timestampQuery
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionbooleanprotected HashtableReturn the mapping of class types to database types for the schema framework.buildSelectQueryForSequenceObject(String seqName, Integer size) INTERNAL: Returns query used to read value generated by sequence object (like Oracle sequence).buildSequenceObjectCreationWriter(Writer writer, String fullSeqName, int increment, int start) INTERNAL: Returns sql used to create sequence object in the database.buildSequenceObjectDeletionWriter(Writer writer, String fullSeqName) INTERNAL: Returns sql used to delete sequence object from the database.intINTERNAL: returns the maximum number of characters that can be used in a foreign key name on this platform.intINTERNAL: returns the maximum number of characters that can be used in a unique key name on this platform.WITH LOCK is required on FB to hold the lock.This method can be overridden by subclasses to return a query that will return the timestamp from the server.protected ExpressionOperatorgreatest()INTERNAL: Build FB equivalent to GREATEST(x, y) FB: CASE WHEN x >= y THEN x ELSE y ENDprotected voidInitialize any platform-specific operatorsbooleanINTERNAL: Override this method if the platform supports sequence objects and it's possible to alter sequence object's increment in the database.booleanINTERNAL Firebird has some issues with using parameters on certain functions and relations.booleanprotected ExpressionOperatorleftTrim()INTERNAL: Build FB equivalent to LTRIM(string_exp).static ExpressionOperatorINTERNAL: Use MONTH function for MONTH_BETWEEN.voidprintSQLSelectStatement(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 FB syntax " ROWS <max> TO <first>".protected ExpressionOperatorINTERNAL: Build FB equivalent to LTRIM(string_exp).protected ExpressionOperatorINTERNAL: Build FB equivalent to RTRIM(string_exp, character).protected ExpressionOperatorINTERNAL: Build FB equivalent to SUBSTR(x, y) FB: SUBSTRING(x FROM y)protected ExpressionOperatorINTERNAL: Build FB equivalent to SUBSTR(x, y, z) FB: SUBSTRING(x FROM y FOR z)booleanbooleanINTERNAL: Indicates whether the platform supports sequence objects.static ExpressionOperatorINTERNAL: Use CONVERT function for toNumber.Methods inherited from class org.eclipse.persistence.internal.databaseaccess.DatabasePlatformaddBatch, addStructConverter, allowsSizeInProcedureArguments, appendBoolean, appendByteArray, appendCalendar, appendDate, appendLiteralToCall, appendLiteralToCallWithBinding, appendNumber, appendParameter, appendParameterInternal, appendString, appendTime, appendTimestamp, autoCommit, beginTransaction, buildBatchCriteria, buildBatchCriteriaForComplexId, buildCallWithReturning, buildClassTypes, buildCreateIndex, buildCreateIndex, buildDropIndex, buildDropIndex, buildProcedureCallString, buildSequenceObjectAlterIncrementWriter, canBatchWriteWithOptimisticLocking, canBuildCallWithReturning, checkTableExists, commitTransaction, computeMaxRowsForSQL, convertToDatabaseType, copyInto, createArray, createArray, createPlatformDefaultSequence, createStruct, createStruct, createStruct, dontBindUpdateAllQueryUsingTempTables, executeBatch, executeStoredProcedure, freeTemporaryObject, getAssignmentString, getBatchBeginString, getBatchDelimiterString, getBatchEndString, getBatchRowCountAssignString, getBatchRowCountDeclareString, getBatchRowCountReturnString, getBatchWritingMechanism, getCastSizeForVarcharParameter, getClassTypes, getConnection, getConnectionUserName, getConstraintDeletionString, getCreateDatabaseSchemaString, getCreateTempTableSqlBodyForTable, getCreateTempTableSqlPrefix, getCreateTempTableSqlSuffix, getCreateViewString, getCreationInOutputProcedureToken, getCreationOutputProcedureToken, getCursorCode, getCustomModifyValueForCall, getDefaultSequenceTableName, getDriverSupportsNVarChar, getDropCascadeString, getDropDatabaseSchemaString, getFieldTypeDefinition, getFieldTypes, getFunctionCallHeader, getIndexNamePrefix, getInOutputProcedureToken, getInputProcedureToken, getJDBCOuterJoinString, getJDBCType, getJDBCType, getJDBCTypeForSetNull, getJdbcTypeName, getMaxBatchWritingSize, getMaxFieldNameSize, getMaxIndexNameSize, getNoWaitString, getObjectFromResultSet, getOutputProcedureToken, getParameterValueFromDatabaseCall, getParameterValueFromDatabaseCall, getPartitioningCallback, getPingSQL, getProcedureArgument, getProcedureArgument, getProcedureArgumentString, getProcedureAsString, getProcedureBeginString, getProcedureCallHeader, getProcedureCallTail, getProcedureEndString, getProcedureOptionList, getQualifiedName, getQualifiedSequenceTableName, getRefValue, getRefValue, getSelectForUpdateNoWaitString, getSelectForUpdateOfString, getSelectForUpdateWaitString, getSequenceCounterFieldName, getSequenceNameFieldName, getSequencePreallocationSize, getSequenceTableName, getStatementCacheSize, getStoredProcedureParameterPrefix, getStoredProcedureTerminationToken, getStringBindingSize, getStructConverters, getTableCreationSuffix, getTableExistsQuery, getTempTableForTable, getTransactionIsolation, getTypeConverters, getUniqueConstraintDeletionString, getUseNationalCharacterVaryingTypeForString, getVPDClearIdentifierQuery, getVPDCreationFunctionString, getVPDCreationPolicyString, getVPDDeletionString, getVPDSetIdentifierQuery, hasPartitioningCallback, initialize, initializeConnectionData, isCastRequired, isForUpdateCompatibleWithDistinct, isInformixOuterJoin, isJDBCExecuteCompliant, isLobCompatibleWithDistinct, isLockTimeoutException, isNullAllowedInSelectClause, isOutputAllowWithResultSet, isRowCountOutputParameterRequired, isXDBDocument, maximumNumericValues, minimumNumericValues, minimumTimeIncrement, prepareBatchStatement, printFieldIdentityClause, printFieldNotNullClause, printFieldNullClause, printFieldTypeSize, printFieldTypeSize, printFieldUnique, printFieldUnique, printStoredFunctionReturnKeyWord, printValuelist, printValuelist, registerOutputParameter, registerOutputParameter, registerOutputParameter, registerOutputParameter, requiresNamedPrimaryKeyConstraints, requiresProcedureBrackets, requiresProcedureCallBrackets, requiresProcedureCallOuputToken, requiresTableInIndexDropDDL, requiresTypeNameToRegisterOutputParameter, 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, shouldPrintInOutputTokenBeforeType, shouldPrintInputTokenAtStart, shouldPrintLockingClauseAfterWhereClause, shouldPrintOuterJoinInWhereClause, shouldPrintOutputTokenAtStart, shouldPrintOutputTokenBeforeType, shouldPrintStoredProcedureArgumentNameInCall, shouldPrintStoredProcedureVariablesAfterBeginString, shouldTempTableSpecifyPrimaryKeys, shouldTrimStrings, shouldUseCustomModifyForCall, shouldUseGetSetNString, shouldUseJDBCOuterJoinSyntax, shouldUseRownumFiltering, supportsANSIInnerJoinSyntax, supportsAutoCommit, supportsAutoConversionToNumericForArithmeticOperations, supportsConnectionUserName, supportsCountDistinctWithMultipleFields, supportsDeleteOnCascade, supportsGlobalTempTables, 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, writeUpdateOriginalFromTempTableSqlMethods inherited from class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatformaddOperator, addSequence, addSequence, buildNativeCall, buildSelectQueryForIdentity, buildSelectQueryForIdentity, 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, initIdentitySequences, isAccess, isAttunity, isCloudscape, isDB2, isDB2Z, isDBase, isDerby, isH2, isHANA, isHSQL, isInformix, isMaxDB, isMySQL, isODBC, isOracle, isOracle12, isOracle9, isPervasive, isPointBase, isPostgreSQL, isSQLAnywhere, isSQLServer, isSybase, isSymfoware, isTimesTen, isTimesTen7, removeAllSequences, removeIdentitySequences, removeSequence, sequencesAfterCloneCleanup, setConversionManager, setDefaultNativeSequenceToTable, setDefaultSeqenceAtNextValue, setDefaultSequence, setEndDelimiter, setSelectSequenceNumberQuery, setSequencePreallocationSize, setSequences, setStartDelimiter, setSupportsReturnGeneratedKeys, setTableQualifier, setTimestampQuery, setUpdateSequenceQuery, shouldNativeSequenceUseTransaction, shouldPrepare, shouldSelectDistinctIncludeOrderBy, shouldSelectIncludeOrderBy, supportsIdentity, supportsNativeSequenceNumbers, supportsReturnGeneratedKeys, toString, usesPlatformDefaultSequence
- 
Constructor Details- 
FirebirdPlatformpublic FirebirdPlatform()
 
- 
- 
Method Details- 
buildFieldTypesDescription copied from class:org.eclipse.persistence.internal.databaseaccess.DatabasePlatformReturn the mapping of class types to database types for the schema framework.- Overrides:
- buildFieldTypesin class- org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
 
- 
getMaxForeignKeyNameSizepublic int getMaxForeignKeyNameSize()INTERNAL: returns the maximum number of characters that can be used in a foreign key name on this platform.- Overrides:
- getMaxForeignKeyNameSizein class- org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
 
- 
getMaxUniqueKeyNameSizepublic int getMaxUniqueKeyNameSize()INTERNAL: returns the maximum number of characters that can be used in a unique key name on this platform.- Overrides:
- getMaxUniqueKeyNameSizein class- org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
 
- 
getTimestampQueryDescription copied from class:org.eclipse.persistence.internal.databaseaccess.DatasourcePlatformThis method can be overridden by subclasses to return a query that will return the timestamp from the server. return null if the time should be the local time.- Specified by:
- getTimestampQueryin interface- org.eclipse.persistence.internal.databaseaccess.Platform
- Overrides:
- getTimestampQueryin class- org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
 
- 
isAlterSequenceObjectSupportedpublic boolean isAlterSequenceObjectSupported()Description copied from class:org.eclipse.persistence.internal.databaseaccess.DatabasePlatformINTERNAL: Override this method if the platform supports sequence objects and it's possible to alter sequence object's increment in the database.- Overrides:
- isAlterSequenceObjectSupportedin class- org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
 
- 
buildSequenceObjectCreationWriterpublic Writer buildSequenceObjectCreationWriter(Writer writer, String fullSeqName, int increment, int start) throws IOException INTERNAL: Returns sql used to create sequence object in the database.- Overrides:
- buildSequenceObjectCreationWriterin class- org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
- Throws:
- IOException
 
- 
buildSequenceObjectDeletionWriterpublic Writer buildSequenceObjectDeletionWriter(Writer writer, String fullSeqName) throws IOException INTERNAL: Returns sql used to delete sequence object from the database.- Overrides:
- buildSequenceObjectDeletionWriterin class- org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
- Throws:
- IOException
 
- 
buildSelectQueryForSequenceObjectDescription copied from class:org.eclipse.persistence.internal.databaseaccess.DatasourcePlatformINTERNAL: Returns query used to read value generated by sequence object (like Oracle sequence). In case the other version of this method (taking no parameters) returns null, this method is called every time sequence object NativeSequence reads. If the platform supportsSequenceObjects then (at least) one of buildSelectQueryForSequenceObject methods should return non-null query.- Overrides:
- buildSelectQueryForSequenceObjectin class- org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
 
- 
supportsSequenceObjectspublic boolean supportsSequenceObjects()Description copied from class:org.eclipse.persistence.internal.databaseaccess.DatasourcePlatformINTERNAL: Indicates whether the platform supports sequence objects. This method is to be used *ONLY* by sequencing classes- Overrides:
- supportsSequenceObjectsin class- org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
 
- 
supportsForeignKeyConstraintspublic boolean supportsForeignKeyConstraints()- Overrides:
- supportsForeignKeyConstraintsin class- org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
 
- 
initializePlatformOperatorsprotected void initializePlatformOperators()Description copied from class:org.eclipse.persistence.internal.databaseaccess.DatasourcePlatformInitialize any platform-specific operators- Overrides:
- initializePlatformOperatorsin class- org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
 
- 
substringINTERNAL: Build FB equivalent to SUBSTR(x, y) FB: SUBSTRING(x FROM y)
- 
substring2INTERNAL: Build FB equivalent to SUBSTR(x, y, z) FB: SUBSTRING(x FROM y FOR z)
- 
greatestINTERNAL: Build FB equivalent to GREATEST(x, y) FB: CASE WHEN x >= y THEN x ELSE y END
- 
leftTrimINTERNAL: Build FB equivalent to LTRIM(string_exp). FB: TRIM(LEADING FROM string_exp)
- 
rightTrimINTERNAL: Build FB equivalent to LTRIM(string_exp). FB: TRIM(LEADING FROM string_exp)
- 
rightTrim2INTERNAL: Build FB equivalent to RTRIM(string_exp, character). FB: TRIM(TRAILING character FROM string_exp)
- 
toNumberOperatorINTERNAL: Use CONVERT function for toNumber.
- 
monthsBetweenOperatorINTERNAL: Use MONTH function for MONTH_BETWEEN.
- 
isFirebirdpublic boolean isFirebird()- Overrides:
- isFirebirdin class- org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
 
- 
printSQLSelectStatementpublic 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 FB syntax " ROWS <max> TO <first>".- Overrides:
- printSQLSelectStatementin class- org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
 
- 
isDynamicSQLRequiredForFunctionspublic boolean isDynamicSQLRequiredForFunctions()INTERNAL Firebird has some issues with using parameters on certain functions and relations. This allows statements to disable binding only in these cases.- Overrides:
- isDynamicSQLRequiredForFunctionsin class- org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
 
- 
allowBindingForSelectClausepublic boolean allowBindingForSelectClause()- Overrides:
- allowBindingForSelectClausein class- org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
 
- 
getSelectForUpdateStringWITH LOCK is required on FB to hold the lock.- Overrides:
- getSelectForUpdateStringin class- org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
 
 
-