Feature Testing
----------------------
Limitations
----------------
| Modifier and Type | Field and Description |
|---|---|
| private static final int | |
| private static final long |
| Access | Constructor and Description |
|---|---|
| public |
| Modifier and Type | Method and Description |
|---|---|
| protected void | appendCalendar(Calendar calendar, Writer writer)
Overrides org. |
| protected void | appendDate(Date date, Writer writer)
Overrides org. |
| protected void | appendTime(Time time, Writer writer)
Overrides org. |
| protected void | appendTimestamp(Timestamp timestamp, Writer writer)
Overrides org. |
| protected Hashtable | buildFieldTypes()
Overrides org. |
| public ValueReadQuery | buildSelectQueryForSequenceObject(final String sequenceName, final Integer size)
Overrides org. |
| public boolean | canBatchWriteWithOptimisticLocking(DatabaseCall call)
Overrides org. |
| public int | computeMaxRowsForSQL(int firstResultIndex, int maxResults)
Overrides org. |
| private static ExpressionOperator | |
| private static ExpressionOperator | Returns: the expression operator representing the JPQL function current_date as defined by 4.6.17.2.3 of the JPA 2.0 specificationCreates the expression operator representing the JPQL function current_date as defined by 4.6.17.2.3 of the JPA 2.0 specification |
| private static ExpressionOperator | Returns: the expression operator representing the JPQL function current_timestamp as defined by 4.6.17.2.3 of the JPA 2.0 specificationCreates the expression operator representing the JPQL function current_timestamp as defined by 4.6.17.2.3 of the JPA 2.0 specification |
| public static ExpressionOperator | createLocate2Operator()
INTERNAL: Build locate operator with 3 params i.e. LOCATE("coffee", t0.DESCRIP, 4). |
| public static ExpressionOperator | |
| private static ExpressionOperator | |
| private static ExpressionOperator | |
| private static ExpressionOperator | |
| private static ExpressionOperator | Returns: the expression operator representing the JPQL function current_timestamp as defined by 4.6.17.2.3 of the JPA 2.0 specificationCreates the expression operator representing the JPQL function current_timestamp as defined by 4.6.17.2.3 of the JPA 2.0 specification |
| private static ExpressionOperator | Returns: the expression operator representing the JPQL function varianceCreates the expression operator representing the JPQL function variance |
| public int | executeBatch(Statement statement, boolean
- flag is set to true if this statement is prepared isStatementPrepared)Overrides org. |
| protected String | getCreateTempTableSqlPrefix()
Overrides org. |
| public String | getInputProcedureToken()
Overrides org. |
| public int | getMaxFieldNameSize()
Overrides org. |
| public String | getOutputProcedureToken()
Overrides org. |
| public String | getProcedureCallHeader()
Overrides org. |
| public String | getProcedureCallTail()
Overrides org. |
| public DatabaseTable | getTempTableForTable(DatabaseTable
is original table for which temp table is created. table)Overrides org. |
| protected void | initializePlatformOperators()
Overrides org. |
| public boolean | isForUpdateCompatibleWithDistinct()
Overrides org. |
| public boolean | |
| protected void | printFieldTypeSize(Writer writer, FieldDefinition field, FieldTypeDefinition fieldType)
Overrides org. |
| public void | printSQLSelectStatement(DatabaseCall call, ExpressionSQLPrinter printer, SQLSelectStatement statement)
Overrides org. |
| public boolean | |
| public boolean | shouldAlwaysUseTempStorageForModifyAll()
INTERNAL:
That method affects UpdateAllQuery and DeleteAllQuery execution.
|
| public boolean | shouldBindLiterals()
Overrides org. |
| public boolean | shouldOptimizeDataConversion()
Overrides org. |
| public boolean | shouldPrintOuterJoinInWhereClause()
Overrides org. |
| public boolean | shouldPrintStoredProcedureArgumentNameInCall()
INTERNAL: Should the variable name of a stored procedure call be printed as part of the
procedure call e.g. EXECUTE PROCEDURE MyStoredProc(myvariable = ?)
|
| protected boolean | shouldTempTableSpecifyPrimaryKeys()
Overrides org. |
| public boolean | shouldUseJDBCOuterJoinSyntax()
Overrides org. |
| public boolean | |
| public boolean | supportsGlobalTempTables()
Overrides org. |
| public boolean | supportsIndividualTableLocking()
Overrides org. |
| public boolean | supportsLocalTempTables()
Overrides org. |
| public boolean | |
| public boolean | supportsSequenceObjects()
Overrides org. |
| public boolean | |
| public boolean | |
| public void | writeAddColumnClause(Writer writer, AbstractSession session, TableDefinition table, FieldDefinition field)
Overrides org. |
| MAX_VARTYPE_LENGTH | back to summary |
|---|---|
| private static final int MAX_VARTYPE_LENGTH | |
| serialVersionUID | back to summary |
|---|---|
| private static final long serialVersionUID | |
| HANAPlatform | back to summary |
|---|---|
| public HANAPlatform() | |
| appendCalendar | back to summary |
|---|---|
| protected void appendCalendar(Calendar calendar, Writer writer) throws IOException Overrides org. Doc from org. Answer a platform correct string representation of a Calendar as a Timestamp, suitable for SQL generation. The calendar is printed in the ODBC platform independent timestamp format {ts'YYYY-MM-DD HH:MM:SS.NNNNNNNNN'}.
| |
| appendDate | back to summary |
|---|---|
| protected void appendDate(Date date, Writer writer) throws IOException Overrides org. Doc from org. Answer a platform correct string representation of a Date, suitable for SQL generation. The date is printed in the ODBC platform independent format {d 'yyyy-mm-dd'}.
| |
| appendTime | back to summary |
|---|---|
| protected void appendTime(Time time, Writer writer) throws IOException Overrides org. Doc from org. Answer a platform correct string representation of a Time, suitable for SQL generation. The time is printed in the ODBC platform independent format {t'hh:mm:ss'}.
| |
| appendTimestamp | back to summary |
|---|---|
| protected void appendTimestamp(Timestamp timestamp, Writer writer) throws IOException Overrides org. Doc from org. Answer a platform correct string representation of a Timestamp, suitable for SQL generation. The timestamp is printed in the ODBC platform independent timestamp format {ts'YYYY-MM-DD HH:MM:SS.NNNNNNNNN'}.
| |
| buildFieldTypes | back to summary |
|---|---|
| protected Hashtable Overrides org. Doc from org. Return the mapping of class types to database types for the schema framework.
| |
| buildSelectQueryForSequenceObject | back to summary |
|---|---|
| public ValueReadQuery buildSelectQueryForSequenceObject(final String sequenceName, final Integer size) Overrides org. Doc from org. 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.
| |
| canBatchWriteWithOptimisticLocking | back to summary |
|---|---|
| public boolean canBatchWriteWithOptimisticLocking(DatabaseCall call) Overrides org. Doc from org. INTERNAL: Supports Batch Writing with Optimistic Locking.
| |
| computeMaxRowsForSQL | back to summary |
|---|---|
| public int computeMaxRowsForSQL(int firstResultIndex, int maxResults) Overrides org. Doc from org. 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 By default, we assume case 1 and simply return the value of maxResults. Subclasses may provide an override
| |
| createConcatExpressionOperator | back to summary |
|---|---|
| private static ExpressionOperator createConcatExpressionOperator() | |
| createCurrentDateExpressionOperator | back to summary |
|---|---|
| private static ExpressionOperator createCurrentDateExpressionOperator() Creates the expression operator representing the JPQL function current_date as defined by 4.6.17.2.3 of the JPA 2.0 specification
| |
| createCurrentTimeExpressionOperator | back to summary |
|---|---|
| private static ExpressionOperator createCurrentTimeExpressionOperator() Creates the expression operator representing the JPQL function current_timestamp as defined by 4.6.17.2.3 of the JPA 2.0 specification
| |
| createLocate2Operator | back to summary |
|---|---|
| public static ExpressionOperator createLocate2Operator() INTERNAL: Build locate operator with 3 params i.e. LOCATE("coffee", t0.DESCRIP, 4). Last parameter is a start at. | |
| createLocateOperator | back to summary |
|---|---|
| public static ExpressionOperator createLocateOperator() INTERNAL: Build locate operator i.e. LOCATE("ob", t0.F_NAME) | |
| createLogOperator | back to summary |
|---|---|
| private static ExpressionOperator createLogOperator() Create the log operator for this platform | |
| createNullifOperator | back to summary |
|---|---|
| private static ExpressionOperator createNullifOperator() | |
| createNullValueOperator | back to summary |
|---|---|
| private static ExpressionOperator createNullValueOperator() | |
| createTodayExpressionOperator | back to summary |
|---|---|
| private static ExpressionOperator createTodayExpressionOperator() Creates the expression operator representing the JPQL function current_timestamp as defined by 4.6.17.2.3 of the JPA 2.0 specification
| |
| createVarianceOperator | back to summary |
|---|---|
| private static ExpressionOperator createVarianceOperator() Creates the expression operator representing the JPQL function variance
| |
| executeBatch | back to summary |
|---|---|
| public int executeBatch(Statement statement, boolean isStatementPrepared) throws SQLException Overrides org. Doc from org. Internal: This gets called on each batch statement execution Needs to be implemented so that it returns the number of rows successfully modified by this statement for optimistic locking purposes.
| |
| getCreateTempTableSqlPrefix | back to summary |
|---|---|
| protected String getCreateTempTableSqlPrefix() Overrides org. Doc from org. 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.
| |
| getInputProcedureToken | back to summary |
|---|---|
| public String getInputProcedureToken() Overrides org. Used for stored procedure creation: Prefix for INPUT parameters. Not required on most platforms.
| |
| getMaxFieldNameSize | back to summary |
|---|---|
| public int getMaxFieldNameSize() Overrides org. Doc from org. INTERNAL: returns the maximum number of characters that can be used in a field name on this platform.
| |
| getOutputProcedureToken | back to summary |
|---|---|
| public String getOutputProcedureToken() Overrides org. This method is used to print the output parameter token when stored procedures are called
| |
| getProcedureCallHeader | back to summary |
|---|---|
| public String getProcedureCallHeader() Overrides org. Doc from org. Used for sp calls.
| |
| getProcedureCallTail | back to summary |
|---|---|
| public String getProcedureCallTail() Overrides org. Used for sp calls.
| |
| getTempTableForTable | back to summary |
|---|---|
| public DatabaseTable getTempTableForTable(DatabaseTable table) Overrides org. Doc from org. INTERNAL: May override this method if the platform support temporary tables.
| |
| initializePlatformOperators | back to summary |
|---|---|
| protected void initializePlatformOperators() Overrides org. Doc from org. Initialize any platform-specific operators
| |
| isForUpdateCompatibleWithDistinct | back to summary |
|---|---|
| public boolean isForUpdateCompatibleWithDistinct() Overrides org. Doc from org. INTERNAL: Indicates whether SELECT DISTINCT ... FOR UPDATE is allowed by the platform (Oracle doesn't allow this).
| |
| isHANA | back to summary |
|---|---|
| public boolean isHANA() Overrides org. Implements org.
| |
| printFieldTypeSize | back to summary |
|---|---|
| protected void printFieldTypeSize(Writer writer, FieldDefinition field, FieldTypeDefinition fieldType) throws IOException Overrides org.
| |
| printSQLSelectStatement | back to summary |
|---|---|
| public void printSQLSelectStatement(DatabaseCall call, ExpressionSQLPrinter printer, SQLSelectStatement statement) Overrides org. Doc from org. INTERNAL: Print the SQL representation of the statement on a stream, storing the fields in the DatabaseCall.
| |
| requiresUniqueConstraintCreationOnTableCreate | back to summary |
|---|---|
| public boolean requiresUniqueConstraintCreationOnTableCreate() Used for table creation. If a database platform does not support ALTER TABLE syntax to add/drop unique constraints (like Symfoware), overriding this method will allow the constraint to be specified in the CREATE TABLE statement. This only affects unique constraints specified using the UniqueConstraint annotation or equivalent method. Columns for which the 'unique' attribute is set to true will be declared 'UNIQUE' in the CREATE TABLE statement regardless of the return value of this method.
| |
| shouldAlwaysUseTempStorageForModifyAll | back to summary |
|---|---|
| public boolean shouldAlwaysUseTempStorageForModifyAll() INTERNAL: That method affects UpdateAllQuery and DeleteAllQuery execution. In case it returns false modify all queries would attempt to proceed without using temporary storage if it is possible. In case it returns true modify all queries would use temporary storage unless each modify statement doesn't reference any other tables. May need to override this method if the platform can't handle the sql generated for modify all queries without using temporary storage.
| |
| shouldBindLiterals | back to summary |
|---|---|
| public boolean shouldBindLiterals() Overrides org. Doc from org. PUBLIC: Allows platform to choose whether to bind literals in DatabaseCalls or not.
| |
| shouldOptimizeDataConversion | back to summary |
|---|---|
| public boolean shouldOptimizeDataConversion() Overrides org. Doc from org. Return if our driver level data conversion optimization is enabled. This can be disabled as some drivers perform data conversion themselves incorrectly.
| |
| shouldPrintOuterJoinInWhereClause | back to summary |
|---|---|
| public boolean shouldPrintOuterJoinInWhereClause() Overrides org. Doc from org. Some database require outer joins to be given in the where clause, others require it in the from clause.
| |
| shouldPrintStoredProcedureArgumentNameInCall | back to summary |
|---|---|
| public boolean shouldPrintStoredProcedureArgumentNameInCall() INTERNAL: Should the variable name of a stored procedure call be printed as part of the procedure call e.g. EXECUTE PROCEDURE MyStoredProc(myvariable = ?)
| |
| shouldTempTableSpecifyPrimaryKeys | back to summary |
|---|---|
| protected boolean shouldTempTableSpecifyPrimaryKeys() Overrides org. Doc from org. INTERNAL: Indicates whether temporary table can specify primary keys (some platforms don't allow that). Used by writeCreateTempTableSql method.
| |
| shouldUseJDBCOuterJoinSyntax | back to summary |
|---|---|
| public boolean shouldUseJDBCOuterJoinSyntax() Overrides org. Doc from org. JDBC defines and outer join syntax, many drivers do not support this. So we normally avoid it.
| |
| supportsForeignKeyConstraints | back to summary |
|---|---|
| public boolean supportsForeignKeyConstraints() Overrides org.
| |
| supportsGlobalTempTables | back to summary |
|---|---|
| public boolean supportsGlobalTempTables() Overrides org. Doc from org. 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.
| |
| supportsIndividualTableLocking | back to summary |
|---|---|
| public boolean supportsIndividualTableLocking() Overrides org. Doc from org. INTERNAL: Indicates whether locking clause could be selectively applied only to some tables in a ReadQuery. Example: the following locks the rows in SALARY table, doesn't lock the rows in EMPLOYEE table: on Oracle platform (method returns true): SELECT t0.EMP_ID..., t1.SALARY FROM EMPLOYEE t0, SALARY t1 WHERE ... FOR UPDATE t1.SALARY on SQLServer platform (method returns true): SELECT t0.EMP_ID..., t1.SALARY FROM EMPLOYEE t0, SALARY t1 WITH (UPDLOCK) WHERE ...
| |
| supportsLocalTempTables | back to summary |
|---|---|
| public boolean supportsLocalTempTables() Overrides org. Doc from org. INTERNAL: Indicates whether the platform supports local temporary tables. "Local" means that several threads may create temporary tables with the same name. Local temporary table is created in the beginning of UpdateAllQuery execution and dropped in the end of it. Override this method if the platform supports local temporary tables.
| |
| supportsNativeSequenceNumbers | back to summary |
|---|---|
| public boolean supportsNativeSequenceNumbers() Overrides org.
| |
| supportsSequenceObjects | back to summary |
|---|---|
| public boolean supportsSequenceObjects() Overrides org. Doc from org. INTERNAL: Indicates whether the platform supports sequence objects. This method is to be used *ONLY* by sequencing classes
| |
| supportsStoredFunctions | back to summary |
|---|---|
| public boolean supportsStoredFunctions() Overrides org.
| |
| usesStringBinding | back to summary |
|---|---|
| public boolean usesStringBinding() Overrides org.
| |
| writeAddColumnClause | back to summary |
|---|---|
| public void writeAddColumnClause(Writer writer, AbstractSession session, TableDefinition table, FieldDefinition field) throws IOException Overrides org. Doc from org. INTERNAL: May need to override this method if the platform supports ALTER TABLE ADD <column> and the generated sql doesn't work. Write the string that follows ALTER TABLE to create a sql statement for the platform in order to append a new column to an existing table.
| |