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 Summary
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, 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
-
Method Summary
Modifier and TypeMethodDescriptionboolean
protected Hashtable
Return 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.int
INTERNAL: returns the maximum number of characters that can be used in a foreign key name on this platform.int
INTERNAL: 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 ExpressionOperator
greatest()
INTERNAL: Build FB equivalent to GREATEST(x, y) FB: CASE WHEN x >= y THEN x ELSE y ENDprotected void
Initialize any platform-specific operatorsboolean
INTERNAL: Override this method if the platform supports sequence objects and it's possible to alter sequence object's increment in the database.boolean
INTERNAL Firebird has some issues with using parameters on certain functions and relations.boolean
protected ExpressionOperator
leftTrim()
INTERNAL: Build FB equivalent to LTRIM(string_exp).static ExpressionOperator
INTERNAL: Use MONTH function for MONTH_BETWEEN.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>".protected ExpressionOperator
INTERNAL: Build FB equivalent to LTRIM(string_exp).protected ExpressionOperator
INTERNAL: Build FB equivalent to RTRIM(string_exp, character).protected ExpressionOperator
INTERNAL: Build FB equivalent to SUBSTR(x, y) FB: SUBSTRING(x FROM y)protected ExpressionOperator
INTERNAL: Build FB equivalent to SUBSTR(x, y, z) FB: SUBSTRING(x FROM y FOR z)boolean
boolean
INTERNAL: Indicates whether the platform supports sequence objects.static ExpressionOperator
INTERNAL: Use CONVERT function for toNumber.Methods inherited from class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
addBatch, 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, writeUpdateOriginalFromTempTableSql
Methods inherited from class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
addOperator, 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
-
FirebirdPlatform
public FirebirdPlatform()
-
-
Method Details
-
buildFieldTypes
Description copied from class:org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
Return the mapping of class types to database types for the schema framework.- Overrides:
buildFieldTypes
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getMaxForeignKeyNameSize
public int getMaxForeignKeyNameSize()INTERNAL: returns the maximum number of characters that can be used in a foreign key name on this platform.- Overrides:
getMaxForeignKeyNameSize
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getMaxUniqueKeyNameSize
public int getMaxUniqueKeyNameSize()INTERNAL: returns the maximum number of characters that can be used in a unique key name on this platform.- Overrides:
getMaxUniqueKeyNameSize
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getTimestampQuery
Description copied from class:org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
This 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:
getTimestampQuery
in interfaceorg.eclipse.persistence.internal.databaseaccess.Platform
- Overrides:
getTimestampQuery
in classorg.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
-
isAlterSequenceObjectSupported
public boolean isAlterSequenceObjectSupported()Description copied from class:org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
INTERNAL: Override this method if the platform supports sequence objects and it's possible to alter sequence object's increment in the database.- Overrides:
isAlterSequenceObjectSupported
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
buildSequenceObjectCreationWriter
public Writer buildSequenceObjectCreationWriter(Writer writer, String fullSeqName, int increment, int start) throws IOException INTERNAL: Returns sql used to create sequence object in the database.- Overrides:
buildSequenceObjectCreationWriter
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
- Throws:
IOException
-
buildSequenceObjectDeletionWriter
public Writer buildSequenceObjectDeletionWriter(Writer writer, String fullSeqName) throws IOException INTERNAL: Returns sql used to delete sequence object from the database.- Overrides:
buildSequenceObjectDeletionWriter
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
- Throws:
IOException
-
buildSelectQueryForSequenceObject
Description copied from class:org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
INTERNAL: 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:
buildSelectQueryForSequenceObject
in classorg.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
-
supportsSequenceObjects
public boolean supportsSequenceObjects()Description copied from class:org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
INTERNAL: Indicates whether the platform supports sequence objects. This method is to be used *ONLY* by sequencing classes- Overrides:
supportsSequenceObjects
in classorg.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
-
supportsForeignKeyConstraints
public boolean supportsForeignKeyConstraints()- Overrides:
supportsForeignKeyConstraints
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
initializePlatformOperators
protected void initializePlatformOperators()Description copied from class:org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
Initialize any platform-specific operators- Overrides:
initializePlatformOperators
in classorg.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
-
substring
INTERNAL: Build FB equivalent to SUBSTR(x, y) FB: SUBSTRING(x FROM y) -
substring2
INTERNAL: Build FB equivalent to SUBSTR(x, y, z) FB: SUBSTRING(x FROM y FOR z) -
greatest
INTERNAL: Build FB equivalent to GREATEST(x, y) FB: CASE WHEN x >= y THEN x ELSE y END -
leftTrim
INTERNAL: Build FB equivalent to LTRIM(string_exp). FB: TRIM(LEADING FROM string_exp) -
rightTrim
INTERNAL: Build FB equivalent to LTRIM(string_exp). FB: TRIM(LEADING FROM string_exp) -
rightTrim2
INTERNAL: Build FB equivalent to RTRIM(string_exp, character). FB: TRIM(TRAILING character FROM string_exp) -
toNumberOperator
INTERNAL: Use CONVERT function for toNumber. -
monthsBetweenOperator
INTERNAL: Use MONTH function for MONTH_BETWEEN. -
isFirebird
public boolean isFirebird()- Overrides:
isFirebird
in classorg.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
-
printSQLSelectStatement
public 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:
printSQLSelectStatement
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
isDynamicSQLRequiredForFunctions
public 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:
isDynamicSQLRequiredForFunctions
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
allowBindingForSelectClause
public boolean allowBindingForSelectClause()- Overrides:
allowBindingForSelectClause
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getSelectForUpdateString
WITH LOCK is required on FB to hold the lock.- Overrides:
getSelectForUpdateString
in classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-