Purpose: Provides Pervasive SQL DBMS specific behavior.
Pervasive SQL Platform file
Contributed by: Pervasive Software, Inc.
Contributed under bug: 392109
Developed on Pervasive PSQL Server 11.30
- Eclipselink Core SRG Test passes with known limitations.
- Eclipselink JPA SRG Test passes with known limitations.
- Eclipselink stored procedure tests "CustomSQLTestModel", "StoredProcedureGeneratorModel" pass with known limitations.
Limitations
| Modifier and Type | Field and Description |
|---|---|
| public static final int |
| Access | Constructor and Description |
|---|---|
| public |
| DEFAULT_CHAR_SIZE | back to summary |
|---|---|
| public static final int DEFAULT_CHAR_SIZE | |
| PervasivePlatform | back to summary |
|---|---|
| public PervasivePlatform() Default constructor. | |
| buildClassTypes | back to summary |
|---|---|
| protected Map Overrides org. Doc from org. Return the mapping of class types to database types for the schema framework.
| |
| buildFieldTypes | back to summary |
|---|---|
| protected Hashtable Overrides org. Doc from org. Return the mapping of class types to database types for the schema framework.
| |
| buildSelectQueryForIdentity | back to summary |
|---|---|
| public ValueReadQuery buildSelectQueryForIdentity() Overrides org. INTERNAL: Build the identity query for native sequencing. Taken verbatim from org.eclipse.persistence\foundation\org.eclipse.persistence.core\src\org\eclipse\persistence\platform\database\SQLServerPlatform.java
| |
| dateToStringOperator | back to summary |
|---|---|
| protected ExpressionOperator dateToStringOperator() Cloned from MySQLPlatform.java | |
| getCreateTempTableSqlPrefix | back to summary |
|---|---|
| protected String getCreateTempTableSqlPrefix() Overrides org. INTERNAL:
| |
| getInOutputProcedureToken | back to summary |
|---|---|
| public String getInOutputProcedureToken() Overrides org. Pervasive uses the INOUT keyword, as opposed to "IN OUT".
| |
| getInputProcedureToken | back to summary |
|---|---|
| public String getInputProcedureToken() Overrides org. Pervasive uses IN prefix for INPUT parameters.
| |
| getProcedureArgumentString | back to summary |
|---|---|
| public String getProcedureArgumentString() Overrides org. Pervasive uses ":" as prefix for procedure arguments.
| |
| getProcedureBeginString | back to summary |
|---|---|
| public String getProcedureBeginString() Overrides org. Pervasive requires BEGIN in a procedure statement.
| |
| getProcedureCallHeader | back to summary |
|---|---|
| public String getProcedureCallHeader() Overrides org. Pervasive uses CALL or EXECUTE not CALL PROCEDURE or EXECUTE PROCEDURE
| |
| getProcedureEndString | back to summary |
|---|---|
| public String getProcedureEndString() Overrides org. Pervasive requires END in a procedure statement.
| |
| getSelectForUpdateString | back to summary |
|---|---|
| public String getSelectForUpdateString() Overrides org. Temporary workaround to avoid joined queries with FOR UPDATE in them
| |
| getStoredProcedureParameterPrefix | back to summary |
|---|---|
| public String getStoredProcedureParameterPrefix() Overrides org. Pervasive uses ":" as prefix for procedure parameters.
| |
| getTempTableForTable | back to summary |
|---|---|
| public DatabaseTable getTempTableForTable(DatabaseTable table) Overrides org. INTERNAL:
| |
| 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. INTERNAL: Indicates whether SELECT DISTINCT ... FOR UPDATE is allowed by the platform (Oracle doesn't allow this).
| |
| isPervasive | back to summary |
|---|---|
| public boolean isPervasive() Overrides org. Answers whether platform is Pervasive
| |
| printFieldIdentityClause | back to summary |
|---|---|
| public void printFieldIdentityClause(Writer writer) throws ValidationException Overrides org. Append the receiver's field 'identity' constraint clause to a writer. Taken from org.eclipse.persistence\foundation\org.eclipse.persistence.core\src\org\eclipse\persistence\platform\database\AccessPlatform.java
| |
| printFieldTypeSize | back to summary |
|---|---|
| public void printFieldTypeSize(Writer writer, FieldDefinition field, FieldTypeDefinition fieldType, boolean shouldPrintFieldIdentityClause) throws IOException Overrides org. Taken from org.eclipse.persistence\foundation\org.eclipse.persistence.core\src\org\eclipse\persistence\platform\database\AccessPlatform.java
| |
| requiresProcedureBrackets | back to summary |
|---|---|
| public boolean requiresProcedureBrackets() Overrides org. In CREATE PROCEDURE, Pervasive requires brackets after the procedure name, even if there are no arguments.
| |
| requiresProcedureCallOuputToken | back to summary |
|---|---|
| public boolean requiresProcedureCallOuputToken() Overrides org. Pervasive requires the OUTPUT keyword for output parameters
| |
| shouldPrintLockingClauseAfterWhereClause | back to summary |
|---|---|
| public boolean shouldPrintLockingClauseAfterWhereClause() Attempts to remove FOR UPDATE from queries
| |
| shouldPrintStoredProcedureArgumentNameInCall | back to summary |
|---|---|
| public boolean shouldPrintStoredProcedureArgumentNameInCall() INTERNAL: Pervasive SQL stored procedure calls do not require the argument name be printed in the call string e.g. call MyStoredProc(?) instead of call MyStoredProc(myvariable = ?)
| |
| shouldUseJDBCOuterJoinSyntax | back to summary |
|---|---|
| public boolean shouldUseJDBCOuterJoinSyntax() Overrides org. JDBC defines an outer join syntax which many drivers do not support. So we normally avoid it.
| |
| singleArgumentSubstringOperator | back to summary |
|---|---|
| public ExpressionOperator singleArgumentSubstringOperator() Override the default SubstringSingleArg operator. Cloned from SybasePlatform.java | |
| supportsDeleteOnCascade | back to summary |
|---|---|
| public boolean supportsDeleteOnCascade() Overrides org. Setting this to false (cf. Sybase) to work around problem that unspecified default delete rule is RESTRICT, even when not allowed due to self-referencing table.
| |
| 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.
| |
| supportsIdentity | back to summary |
|---|---|
| public boolean supportsIdentity() Overrides org. Indicates whether the platform supports identity.
| |
| supportsLocalTempTables | back to summary |
|---|---|
| public boolean supportsLocalTempTables() Overrides org. INTERNAL:
| |
| supportsLockingQueriesWithMultipleTables | back to summary |
|---|---|
| public boolean supportsLockingQueriesWithMultipleTables() INTERNAL: Indicates whether locking clause could be applied to the query that has more than one table
| |
| toCharOperator | back to summary |
|---|---|
| protected ExpressionOperator toCharOperator() Cloned from MySQLPlatform.java | |
| toDateOperator | back to summary |
|---|---|
| protected ExpressionOperator toDateOperator() Cloned from MySQLPlatform.java | |
| toNumberOperator | back to summary |
|---|---|
| protected ExpressionOperator toNumberOperator() | |