Module eclipselink

Class HSQLPlatform

  • All Implemented Interfaces:
    Serializable, Cloneable, org.eclipse.persistence.internal.core.databaseaccess.CorePlatform<org.eclipse.persistence.internal.helper.ConversionManager>, org.eclipse.persistence.internal.databaseaccess.Platform

    public class HSQLPlatform
    extends DatabasePlatform

    Purpose: Provides HSQL specific behavior. Support HSQL functionality as of 1.8.1.

    Includes:

    • DDL creation
    • IDENTITY sequencing
    • SEQUENCE objects
    • Functions
    • Pagination
    See Also:
    Serialized Form
    Since:
    TOPLink/Java 4.5
    • Field Summary

      • 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, uuidQuery
    • Constructor Summary

      Constructors 
      Constructor Description
      HSQLPlatform()  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean allowBindingForSelectClause()  
      protected Hashtable<Class<?>,​org.eclipse.persistence.internal.databaseaccess.FieldTypeDefinition> buildFieldTypes()
      Return the mapping of class types to database types for the schema framework.
      ValueReadQuery buildSelectQueryForIdentity()
      INTERNAL: Returns query used to read back the value generated by Identity.
      ValueReadQuery buildSelectQueryForSequenceObject​(String seqName, Integer size)
      INTERNAL: Returns query used to read value generated by sequence object (like Oracle sequence).
      Writer buildSequenceObjectCreationWriter​(Writer writer, String fullSeqName, int increment, int start)
      INTERNAL: HSQL requires START WITH first.
      int computeMaxRowsForSQL​(int firstResultIndex, int maxResults)
      INTERNAL: Use the JDBC maxResults and firstResultIndex setting to compute a value to use when limiting the results of a query in SQL.
      protected String getCreateTempTableSqlPrefix()
      INTERNAL: Override this method if the platform supports temporary tables.
      ValueReadQuery getTimestampQuery()
      This method can be overridden by subclasses to return a query that will return the timestamp from the server.
      protected ExpressionOperator greatest()
      INTERNAL: Build HSQL equivalent to GREATEST(x, y) HSQL: CASE WHEN x >= y THEN x ELSE y
      protected void initializePlatformOperators()
      Initialize any platform-specific operators
      boolean isAlterSequenceObjectSupported()
      INTERNAL: Override this method if the platform supports sequence objects and it's possible to alter sequence object's increment in the database.
      boolean isDynamicSQLRequiredForFunctions()
      INTERNAL HSQL has some issues with using parameters on certain functions and relations.
      boolean isHSQL()  
      void printFieldIdentityClause​(Writer writer)
      Append the receiver's field 'identity' constraint clause to a writer.
      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 HSQL syntax "SELECT LIMIT <first> <max>".
      protected ExpressionOperator rightTrim2()
      INTERNAL: Build HSQL equivalent to RTRIM(string_exp, character).
      boolean shouldUseJDBCOuterJoinSyntax()
      JDBC escape syntax for outer joins is not supported (not required).
      boolean supportsGlobalTempTables()
      INTERNAL: Indicates whether the platform supports global temporary tables.
      boolean supportsIdentity()
      INTERNAL: Indicates whether the platform supports identity.
      boolean supportsNestingOuterJoins()
      Does not allow nesting outer joins, i.e.
      boolean supportsSequenceObjects()
      INTERNAL: Indicates whether the platform supports sequence objects.
      boolean supportsUniqueColumns()
      HSQL (1.8.1) does not support the UNIQUE key word in a column, but does support unique constraints defined separately.
      static ExpressionOperator toNumberOperator()
      INTERNAL: Use CONVERT function for toNumber.
      static ExpressionOperator trimOperator()
      INTERNAL: Use TRIM(FROM ?) function for trim.
      void writeUpdateOriginalFromTempTableSql​(Writer writer, org.eclipse.persistence.internal.helper.DatabaseTable table, Collection<org.eclipse.persistence.internal.helper.DatabaseField> pkFields, Collection<org.eclipse.persistence.internal.helper.DatabaseField> assignedFields)
      INTERNAL: HSQL does not allow multiple fields to be set as a list, so each field needs to be set one by one.
      • 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, buildSequenceObjectDeletionWriter, canBatchWriteWithOptimisticLocking, canBuildCallWithReturning, checkTableExists, commitTransaction, 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, getCreateTempTableSqlSuffix, getCreateViewString, getCreationInOutputProcedureToken, getCreationOutputProcedureToken, getCursorCode, getCustomModifyValueForCall, getDefaultSequenceTableName, getDriverSupportsNVarChar, getDropCascadeString, getDropDatabaseSchemaString, getFieldTypeDefinition, getFieldTypes, getFunctionCallHeader, getIndexNamePrefix, getInOutputProcedureToken, getInputProcedureToken, getJDBCOuterJoinString, getJDBCType, getJDBCType, getJDBCTypeForSetNull, getJdbcTypeName, getJsonPlatform, getMaxBatchWritingSize, getMaxFieldNameSize, getMaxForeignKeyNameSize, getMaxIndexNameSize, getMaxUniqueKeyNameSize, getNoWaitString, getObjectFromResultSet, getOutputProcedureToken, getParameterValueFromDatabaseCall, getParameterValueFromDatabaseCall, getPartitioningCallback, getPingSQL, getProcedureArgument, getProcedureArgumentString, getProcedureAsString, getProcedureBeginString, getProcedureCallHeader, getProcedureCallTail, getProcedureEndString, getProcedureOptionList, getQualifiedName, getQualifiedSequenceTableName, getRefValue, getRefValue, getSelectForUpdateNoWaitString, getSelectForUpdateOfString, getSelectForUpdateString, 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, 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, shouldUseRownumFiltering, supportsANSIInnerJoinSyntax, supportsAutoCommit, supportsAutoConversionToNumericForArithmeticOperations, supportsConnectionUserName, supportsCountDistinctWithMultipleFields, supportsDeleteOnCascade, supportsForeignKeyConstraints, supportsIndexes, supportsIndividualTableLocking, supportsLocalTempTables, supportsLockingQueriesWithMultipleTables, supportsOrderByParameters, supportsOuterJoinsWithBrackets, supportsPrimaryKeyConstraint, supportsStoredFunctions, supportsTempTables, 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
      • Methods inherited from class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform

        addOperator, addSequence, addSequence, buildNativeCall, buildSelectQueryForIdentity, buildSelectQueryForSequenceObject, clone, convertObject, createConnectionCustomizer, createExpressionFor, getConversionManager, getDataTypesConvertedFrom, getDataTypesConvertedTo, getDefaultNativeSequenceToTable, getDefaultSeqenceAtNextValue, getDefaultSequence, getDefaultSequenceToWrite, getDriverVersion, getEndDelimiter, getINClauseLimit, getOperator, getPlatformOperators, getSelectSequenceQuery, getSequence, getSequences, getSequencesToWrite, getStartDelimiter, getTableQualifier, getTimestampFromServer, getUpdateSequenceQuery, getUUIDQuery, hasDefaultSequence, initializeDefaultQueries, initIdentitySequences, isAccess, isAttunity, isCloudscape, isDB2, isDB2Z, isDBase, isDerby, isFirebird, isH2, isHANA, isInformix, isMariaDB, isMaxDB, isMySQL, isODBC, isOracle, isOracle12, isOracle23, 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, setUUIDQuery, shouldNativeSequenceUseTransaction, shouldPrepare, shouldSelectDistinctIncludeOrderBy, shouldSelectIncludeOrderBy, supportsNativeSequenceNumbers, supportsReturnGeneratedKeys, toString, usesPlatformDefaultSequence
      • Methods inherited from interface org.eclipse.persistence.internal.databaseaccess.Platform

        connectionProperties
    • Constructor Detail

      • HSQLPlatform

        public HSQLPlatform()
    • Method Detail

      • buildFieldTypes

        protected Hashtable<Class<?>,​org.eclipse.persistence.internal.databaseaccess.FieldTypeDefinition> 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 class org.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 class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
      • toNumberOperator

        public static ExpressionOperator toNumberOperator()
        INTERNAL: Use CONVERT function for toNumber.
      • trimOperator

        public static ExpressionOperator trimOperator()
        INTERNAL: Use TRIM(FROM ?) function for trim.
      • rightTrim2

        protected ExpressionOperator rightTrim2()
        INTERNAL: Build HSQL equivalent to RTRIM(string_exp, character). HSQL: TRIM(TRAILING character FROM string_exp)
      • greatest

        protected ExpressionOperator greatest()
        INTERNAL: Build HSQL equivalent to GREATEST(x, y) HSQL: CASE WHEN x >= y THEN x ELSE y
      • isHSQL

        public boolean isHSQL()
        Specified by:
        isHSQL in interface org.eclipse.persistence.internal.databaseaccess.Platform
        Overrides:
        isHSQL in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
      • supportsUniqueColumns

        public boolean supportsUniqueColumns()
        HSQL (1.8.1) does not support the UNIQUE key word in a column, but does support unique constraints defined separately. This allows the column setting to be generated as a constraint.
        Overrides:
        supportsUniqueColumns in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
      • supportsIdentity

        public boolean supportsIdentity()
        Description copied from class: org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
        INTERNAL: Indicates whether the platform supports identity. This method is to be used *ONLY* by sequencing classes
        Overrides:
        supportsIdentity in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
      • buildSelectQueryForIdentity

        public ValueReadQuery buildSelectQueryForIdentity()
        Description copied from class: org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
        INTERNAL: Returns query used to read back the value generated by Identity. This method is called when identity NativeSequence is connected, the returned query used until the sequence is disconnected. If the platform supportsIdentity then (at least) one of buildSelectQueryForIdentity methods should return non-null query.

        Alternatively, if the platform supports Statement.getGeneratedKeys(), see DatasourcePlatform.supportsReturnGeneratedKeys()

        Overrides:
        buildSelectQueryForIdentity in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
      • printFieldIdentityClause

        public void printFieldIdentityClause​(Writer writer)
                                      throws ValidationException
        Description copied from class: org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
        Append the receiver's field 'identity' constraint clause to a writer.
        Overrides:
        printFieldIdentityClause in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
        Throws:
        ValidationException
      • isDynamicSQLRequiredForFunctions

        public boolean isDynamicSQLRequiredForFunctions()
        INTERNAL HSQL has some issues with using parameters on certain functions and relations. This allows statements to disable binding only in these cases.
        Overrides:
        isDynamicSQLRequiredForFunctions in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
      • allowBindingForSelectClause

        public boolean allowBindingForSelectClause()
        Overrides:
        allowBindingForSelectClause in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
      • shouldUseJDBCOuterJoinSyntax

        public boolean shouldUseJDBCOuterJoinSyntax()
        JDBC escape syntax for outer joins is not supported (not required).
        Overrides:
        shouldUseJDBCOuterJoinSyntax in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
      • supportsNestingOuterJoins

        public boolean supportsNestingOuterJoins()
        Does not allow nesting outer joins, i.e. each join must be followed by the ON clause.
        Overrides:
        supportsNestingOuterJoins in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
      • 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 class org.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 class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
      • buildSelectQueryForSequenceObject

        public ValueReadQuery buildSelectQueryForSequenceObject​(String seqName,
                                                                Integer size)
        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 class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
      • supportsGlobalTempTables

        public boolean supportsGlobalTempTables()
        Description copied from class: org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
        INTERNAL: Indicates whether the platform supports global temporary tables. "Global" means that an attempt to create temporary table with the same name for the second time results in exception. EclipseLink attempts to create global temporary table in the beginning of UpdateAllQuery, execution and assumes that it already exists in case SQLException results. In the end of UpdateAllQuery execution all rows are removed from the temporary table - it is necessary in case the same temporary table will be used by another UpdateAllQuery in the same transaction. Override this method if the platform supports global temporary tables. Note that this method is ignored in case supportsLocalTempTables() returns true.
        Overrides:
        supportsGlobalTempTables in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
      • getCreateTempTableSqlPrefix

        protected String getCreateTempTableSqlPrefix()
        Description copied from class: org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
        INTERNAL: Override this method if the platform supports temporary tables. This should contain the beginning of sql string for creating temporary table - the sql statement name, for instance: "CREATE GLOBAL TEMPORARY TABLE ". Don't forget to end it with a space.
        Overrides:
        getCreateTempTableSqlPrefix in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
      • writeUpdateOriginalFromTempTableSql

        public void writeUpdateOriginalFromTempTableSql​(Writer writer,
                                                        org.eclipse.persistence.internal.helper.DatabaseTable table,
                                                        Collection<org.eclipse.persistence.internal.helper.DatabaseField> pkFields,
                                                        Collection<org.eclipse.persistence.internal.helper.DatabaseField> assignedFields)
                                                 throws IOException
        INTERNAL: HSQL does not allow multiple fields to be set as a list, so each field needs to be set one by one.
        Overrides:
        writeUpdateOriginalFromTempTableSql in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
        Parameters:
        writer - for writing the sql
        table - is original table for which temp table is created.
        pkFields - primary key fields for the original table.
        assignedFields - fields to be assigned a new value.
        Throws:
        IOException
      • computeMaxRowsForSQL

        public int computeMaxRowsForSQL​(int firstResultIndex,
                                        int maxResults)
        INTERNAL: Use the JDBC maxResults and firstResultIndex setting to compute a value to use when limiting the results of a query in SQL. These limits tend to be used in two ways. 1. MaxRows is the index of the last row to be returned (like JDBC maxResults) 2. MaxRows is the number of rows to be returned HSQL uses case #2 and therefore the maxResults has to be altered based on the firstResultIndex.
        Overrides:
        computeMaxRowsForSQL in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
        See Also:
        MySQLPlatform
      • 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 HSQL syntax "SELECT LIMIT <first> <max>".
        Overrides:
        printSQLSelectStatement in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
      • getTimestampQuery

        public ValueReadQuery 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 interface org.eclipse.persistence.internal.databaseaccess.Platform
        Overrides:
        getTimestampQuery in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
      • buildSequenceObjectCreationWriter

        public Writer buildSequenceObjectCreationWriter​(Writer writer,
                                                        String fullSeqName,
                                                        int increment,
                                                        int start)
                                                 throws IOException
        INTERNAL: HSQL requires START WITH first.
        Overrides:
        buildSequenceObjectCreationWriter in class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
        Throws:
        IOException