Class MySQLPlatform
- 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.MySQLPlatform
-
- 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 MySQLPlatform extends DatabasePlatform
Purpose: Provides MySQL specific behavior.
Responsibilities:
- Native SQL for Date, Time, & Timestamp.
- Native sequencing.
- Mapping of class types to database types for the schema framework.
- Pessimistic locking.
- Platform specific operators.
- Since:
- OracleAS TopLink 10g (10.1.3)
- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class org.eclipse.persistence.platform.database.DatabasePlatform
DEFAULT_VARCHAR_SIZE
-
-
Constructor Summary
Constructors Constructor Description MySQLPlatform()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description StringbuildProcedureCallString(StoredProcedureCall call, org.eclipse.persistence.internal.sessions.AbstractSession session, org.eclipse.persistence.internal.sessions.AbstractRecord row)Return the stored procedure syntax for this platform.ValueReadQuerybuildSelectQueryForIdentity()INTERNAL: Build the identity query for native sequencing.booleancanBatchWriteWithOptimisticLocking(org.eclipse.persistence.internal.databaseaccess.DatabaseCall call)INTERNAL: Supports Batch Writing with Optimistic Locking.intcomputeMaxRowsForSQL(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.StringgetConstraintDeletionString()INTERNAL: Used for constraint deletion.StringgetDropDatabaseSchemaString(String schema)Return the drop schema definition.StringgetFunctionCallHeader()Used for stored function calls.StringgetIdentifierQuoteCharacter()Deprecated.StringgetInOutputProcedureToken()INTERNAL: MySQL uses the INOUT keyword for this.StringgetProcedureAsString()MySQL does not use the AS token.StringgetProcedureBeginString()INTERNAL: MySQL requires BEGIN.StringgetProcedureCallHeader()INTERNAL: Used for stored procedure calls.StringgetProcedureCallTail()Used for sp calls.StringgetProcedureEndString()INTERNAL: MySQL requires END.StringgetSelectForUpdateString()INTERNAL: Used for pessimistic locking.ValueReadQuerygetTimestampQuery()INTERNAL: This method returns the query to select the timestamp from the server for MySQL.StringgetUniqueConstraintDeletionString()INTERNAL: Used for unique constraint deletion.voidinitializeConnectionData(Connection connection)INTERNAL: Allow initialization from the connection.booleanisForUpdateCompatibleWithDistinct()INTERNAL: Indicates whether SELECT DISTINCT ...booleanisFractionalTimeSupported()booleanisMySQL()Answers whether platform is MySQL.voidprintFieldIdentityClause(Writer writer)INTERNAL: Append the receiver's field 'identity' constraint clause to a writer.voidprintSQLSelectStatement(org.eclipse.persistence.internal.databaseaccess.DatabaseCall call, org.eclipse.persistence.internal.expressions.ExpressionSQLPrinter printer, org.eclipse.persistence.internal.expressions.SQLSelectStatement statement)INTERNAL: Print the SQL representation of the statement on a stream, storing the fields in the DatabaseCall.voidprintStoredFunctionReturnKeyWord(Writer writer)INTERNAL: Prints return keyword for StoredFunctionDefinition: CREATE FUNCTION StoredFunction_In (P_IN BIGINT) RETURN BIGINT The method was introduced because MySQL requires "RETURNS" instead: CREATE FUNCTION StoredFunction_In (P_IN BIGINT) RETURNS BIGINTbooleanrequiresProcedureBrackets()Used for stored procedure creation: MySQL platforms need brackets around arguments declaration even if no arguments exist.booleanrequiresTableInIndexDropDDL()INTERNAL: Return if this database requires the table name when dropping an index.booleanshouldAlwaysUseTempStorageForModifyAll()INTERNAL: MySQL supports temp tables for update-all, delete-all queries.booleanshouldPrintForUpdateClause()INTERNAL: MySQL FOR UPDATE clause has to be the lastbooleanshouldPrintOutputTokenAtStart()INTERNAL: MySQL requires the direction at the start of the argument.booleanshouldPrintStoredProcedureArgumentNameInCall()INTERNAL: MySQL stored procedure calls do not require the argument name be printed in the call string e.g.booleanshouldUseJDBCOuterJoinSyntax()INTERNAL: JDBC defines an outer join syntax which many drivers do not support.booleansupportsAutoConversionToNumericForArithmeticOperations()Some db allow VARCHAR db field to be used in arithmetic operations automatically converting them to numeric: UPDATE OL_PHONE SET PHONE_ORDER_VARCHAR = (PHONE_ORDER_VARCHAR + 1) WHERE ...booleansupportsCountDistinctWithMultipleFields()INTERNAL: Indicates whether the platform supports the count distinct function with multiple fields.booleansupportsGlobalTempTables()INTERNAL: MySQL supports temp tables for update-all, delete-all queries.booleansupportsIdentity()INTERNAL: Indicates whether the platform supports identity.booleansupportsIndividualTableLocking()INTERNAL: Indicates whether locking clause could be selectively applied only to some tables in a ReadQuery.booleansupportsStoredFunctions()voidwriteDeleteFromTargetTableUsingTempTableSql(Writer writer, org.eclipse.persistence.internal.helper.DatabaseTable table, org.eclipse.persistence.internal.helper.DatabaseTable targetTable, Collection pkFields, Collection targetPkFields, org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform platform)INTERNAL: Writes MySQL specific SQL for accessing temp tables for delete-all queries.voidwriteUpdateOriginalFromTempTableSql(Writer writer, org.eclipse.persistence.internal.helper.DatabaseTable table, Collection pkFields, Collection assignedFields)INTERNAL: Writes MySQL specific SQL for accessing temp tables for update-all queries.-
Methods inherited from class org.eclipse.persistence.internal.databaseaccess.DatabasePlatform
addBatch, addStructConverter, allowsSizeInProcedureArguments, appendLiteralToCall, appendParameter, appendParameterInternal, autoCommit, beginTransaction, buildBatchCriteria, buildBatchCriteriaForComplexId, buildCallWithReturning, buildCreateIndex, buildCreateIndex, buildDropIndex, buildDropIndex, buildSequenceObjectAlterIncrementWriter, buildSequenceObjectCreationWriter, buildSequenceObjectDeletionWriter, canBuildCallWithReturning, commitTransaction, convertToDatabaseType, copyInto, createArray, createArray, createStruct, createStruct, dontBindUpdateAllQueryUsingTempTables, executeBatch, executeStoredProcedure, freeTemporaryObject, getAssignmentString, getBatchBeginString, getBatchDelimiterString, getBatchEndString, getBatchRowCountAssignString, getBatchRowCountDeclareString, getBatchRowCountReturnString, getBatchWritingMechanism, getCastSizeForVarcharParameter, getClassTypes, getConnection, getConnectionUserName, getCreateDatabaseSchemaString, getCreateViewString, getCreationInOutputProcedureToken, getCreationOutputProcedureToken, getCursorCode, getCustomModifyValueForCall, getDefaultSequenceTableName, getDriverSupportsNVarChar, getDropCascadeString, getFieldTypeDefinition, getFieldTypes, getIndexNamePrefix, getInputProcedureToken, getJDBCOuterJoinString, getJDBCType, getJDBCType, getJDBCTypeForSetNull, getJdbcTypeName, getMaxBatchWritingSize, getMaxFieldNameSize, getMaxForeignKeyNameSize, getMaxIndexNameSize, getMaxUniqueKeyNameSize, getNoWaitString, getObjectFromResultSet, getOutputProcedureToken, getPartitioningCallback, getPingSQL, getProcedureArgumentSetter, getProcedureArgumentString, getQualifiedName, getQualifiedSequenceTableName, getRefValue, getRefValue, getSelectForUpdateNoWaitString, getSelectForUpdateOfString, getSelectForUpdateWaitString, getSequenceCounterFieldName, getSequenceNameFieldName, getSequencePreallocationSize, getSequenceTableName, getStatementCacheSize, getStoredProcedureParameterPrefix, getStoredProcedureTerminationToken, getStringBindingSize, getStructConverters, getTableCreationSuffix, getTempTableForTable, getTransactionIsolation, getTypeConverters, getUseNationalCharacterVaryingTypeForString, getVPDClearIdentifierQuery, getVPDCreationFunctionString, getVPDCreationPolicyString, getVPDDeletionString, getVPDSetIdentifierQuery, hasPartitioningCallback, initialize, isAlterSequenceObjectSupported, isCastRequired, isDynamicSQLRequiredForFunctions, isInformixOuterJoin, isJDBCExecuteCompliant, isLobCompatibleWithDistinct, isLockTimeoutException, isNullAllowedInSelectClause, isOutputAllowWithResultSet, isRowCountOutputParameterRequired, isXDBDocument, maximumNumericValues, minimumNumericValues, minimumTimeIncrement, prepareBatchStatement, printFieldNotNullClause, printFieldNullClause, printFieldTypeSize, printFieldUnique, printValuelist, printValuelist, registerOutputParameter, requiresNamedPrimaryKeyConstraints, requiresProcedureCallBrackets, requiresProcedureCallOuputToken, requiresTypeNameToRegisterOutputParameter, requiresUniqueConstraintCreationOnTableCreate, retrieveFirstPrimaryKeyOrOne, rollbackTransaction, setBatchWritingMechanism, setCastSizeForVarcharParameter, setCursorCode, setDriverName, setDriverSupportsNVarChar, setIsCastRequired, setMaxBatchWritingSize, setParameterValueInDatabaseCall, setPartitioningCallback, setPingSQL, setPrintInnerJoinInWhereClause, setPrintOuterJoinInWhereClause, setSequenceCounterFieldName, setSequenceNameFieldName, setSequenceTableName, setShouldBindAllParameters, setShouldBindLiterals, setShouldCacheAllStatements, setShouldCreateIndicesOnForeignKeys, setShouldForceFieldNamesToUpperCase, setShouldIgnoreCaseOnFieldComparisons, setShouldOptimizeDataConversion, setShouldTrimStrings, setShouldUseRownumFiltering, setStatementCacheSize, setStoredProcedureTerminationToken, setStringBindingSize, setSupportsAutoCommit, setTableCreationSuffix, setTransactionIsolation, setUseJDBCStoredProcedureSyntax, setUseNationalCharacterVaryingTypeForString, setUsesBatchWriting, setUsesByteArrayBinding, setUsesJDBCBatchWriting, setUsesNativeBatchWriting, setUsesNativeSQL, setUsesStreamsForBinding, setUsesStringBinding, shouldBindAllParameters, shouldBindLiterals, shouldCacheAllStatements, shouldCreateIndicesForPrimaryKeys, shouldCreateIndicesOnForeignKeys, shouldCreateIndicesOnUniqueKeys, shouldForceFieldNamesToUpperCase, shouldIgnoreCaseOnFieldComparisons, shouldIgnoreException, shouldOptimizeDataConversion, shouldPrintAliasForUpdate, shouldPrintConstraintNameAfter, shouldPrintFieldIdentityClause, shouldPrintInnerJoinInWhereClause, shouldPrintInOutputTokenBeforeType, shouldPrintInputTokenAtStart, shouldPrintLockingClauseAfterWhereClause, shouldPrintOuterJoinInWhereClause, shouldPrintOutputTokenBeforeType, shouldPrintStoredProcedureVariablesAfterBeginString, shouldTrimStrings, shouldUseCustomModifyForCall, shouldUseGetSetNString, shouldUseRownumFiltering, supportsANSIInnerJoinSyntax, supportsAutoCommit, supportsConnectionUserName, supportsDeleteOnCascade, supportsForeignKeyConstraints, supportsIndexes, supportsLocalTempTables, supportsLockingQueriesWithMultipleTables, supportsNestingOuterJoins, supportsOuterJoinsWithBrackets, supportsPrimaryKeyConstraint, supportsTempTables, supportsUniqueColumns, supportsUniqueKeyConstraints, supportsVPD, usesBatchWriting, usesByteArrayBinding, usesJDBCBatchWriting, usesNativeBatchWriting, usesNativeSQL, usesSequenceTable, usesStreamsForBinding, usesStringBinding, wasFailureCommunicationBased, writeAddColumnClause, writeCleanUpTempTableSql, writeCreateTempTableSql, writeInsertIntoTableSql, writeLOB, writeParameterMarker, writeTableCreationSuffix
-
Methods inherited from class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
addSequence, addSequence, buildNativeCall, buildSelectQueryForIdentity, buildSelectQueryForSequenceObject, buildSelectQueryForSequenceObject, clone, convertObject, createConnectionCustomizer, getConversionManager, getDataTypesConvertedFrom, getDataTypesConvertedTo, getDefaultNativeSequenceToTable, getDefaultSequence, getDefaultSequenceToWrite, getEndDelimiter, getOperator, getPlatformOperators, getSelectSequenceQuery, getSequence, getSequences, getSequencesToWrite, getStartDelimiter, getTableQualifier, getTimestampFromServer, getUpdateSequenceQuery, hasDefaultSequence, initializeDefaultQueries, isAccess, isAttunity, isCloudscape, isDB2, isDBase, isDerby, isFirebird, isH2, isHANA, isHSQL, isInformix, isMaxDB, isODBC, isOracle, isOracle9, isPervasive, isPointBase, isPostgreSQL, isSQLAnywhere, isSQLServer, isSybase, isSymfoware, isTimesTen, isTimesTen7, removeAllSequences, removeSequence, setConversionManager, setDefaultNativeSequenceToTable, setDefaultSequence, setEndDelimiter, setSelectSequenceNumberQuery, setSequencePreallocationSize, setSequences, setStartDelimiter, setTableQualifier, setTimestampQuery, setUpdateSequenceQuery, shouldNativeSequenceUseTransaction, shouldPrepare, shouldSelectDistinctIncludeOrderBy, shouldSelectIncludeOrderBy, supportsNativeSequenceNumbers, supportsSequenceObjects, toString, usesPlatformDefaultSequence
-
-
-
-
Method Detail
-
initializeConnectionData
public void initializeConnectionData(Connection connection) throws SQLException
Description copied from class:org.eclipse.persistence.internal.databaseaccess.DatabasePlatformINTERNAL: Allow initialization from the connection.- Overrides:
initializeConnectionDatain classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform- Throws:
SQLException
-
isFractionalTimeSupported
public boolean isFractionalTimeSupported()
-
buildSelectQueryForIdentity
public ValueReadQuery buildSelectQueryForIdentity()
INTERNAL: Build the identity query for native sequencing.- Overrides:
buildSelectQueryForIdentityin classorg.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
-
buildProcedureCallString
public String buildProcedureCallString(StoredProcedureCall call, org.eclipse.persistence.internal.sessions.AbstractSession session, org.eclipse.persistence.internal.sessions.AbstractRecord row)
Return the stored procedure syntax for this platform.- Overrides:
buildProcedureCallStringin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
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 MySQL uses case #2 and therefore the maxResults has to be altered based on the firstResultIndex- Overrides:
computeMaxRowsForSQLin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform- Parameters:
firstResultIndex-maxResults-- See Also:
MySQLPlatform
-
canBatchWriteWithOptimisticLocking
public boolean canBatchWriteWithOptimisticLocking(org.eclipse.persistence.internal.databaseaccess.DatabaseCall call)
INTERNAL: Supports Batch Writing with Optimistic Locking.- Overrides:
canBatchWriteWithOptimisticLockingin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getConstraintDeletionString
public String getConstraintDeletionString()
INTERNAL: Used for constraint deletion.- Overrides:
getConstraintDeletionStringin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getUniqueConstraintDeletionString
public String getUniqueConstraintDeletionString()
INTERNAL: Used for unique constraint deletion.- Overrides:
getUniqueConstraintDeletionStringin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getFunctionCallHeader
public String getFunctionCallHeader()
Used for stored function calls.- Overrides:
getFunctionCallHeaderin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getProcedureCallTail
public String getProcedureCallTail()
Used for sp calls.- Overrides:
getProcedureCallTailin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getSelectForUpdateString
public String getSelectForUpdateString()
INTERNAL: Used for pessimistic locking.- Overrides:
getSelectForUpdateStringin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
isForUpdateCompatibleWithDistinct
public boolean isForUpdateCompatibleWithDistinct()
Description copied from class:org.eclipse.persistence.internal.databaseaccess.DatabasePlatformINTERNAL: Indicates whether SELECT DISTINCT ... FOR UPDATE is allowed by the platform (Oracle doesn't allow this).- Overrides:
isForUpdateCompatibleWithDistinctin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getTimestampQuery
public ValueReadQuery getTimestampQuery()
INTERNAL: This method returns the query to select the timestamp from the server for MySQL.- Specified by:
getTimestampQueryin interfaceorg.eclipse.persistence.internal.databaseaccess.Platform- Overrides:
getTimestampQueryin classorg.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
-
isMySQL
public boolean isMySQL()
Answers whether platform is MySQL.- Specified by:
isMySQLin interfaceorg.eclipse.persistence.internal.databaseaccess.Platform- Overrides:
isMySQLin classorg.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
-
printFieldIdentityClause
public void printFieldIdentityClause(Writer writer) throws ValidationException
INTERNAL: Append the receiver's field 'identity' constraint clause to a writer.- Overrides:
printFieldIdentityClausein classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform- Throws:
ValidationException
-
shouldUseJDBCOuterJoinSyntax
public boolean shouldUseJDBCOuterJoinSyntax()
INTERNAL: JDBC defines an outer join syntax which many drivers do not support. So we normally avoid it.- Overrides:
shouldUseJDBCOuterJoinSyntaxin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
supportsIdentity
public boolean supportsIdentity()
INTERNAL: Indicates whether the platform supports identity. MySQL supports native sequencing through AUTO_INCREMENT field types.- Overrides:
supportsIdentityin classorg.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
-
supportsCountDistinctWithMultipleFields
public boolean supportsCountDistinctWithMultipleFields()
INTERNAL: Indicates whether the platform supports the count distinct function with multiple fields.- Overrides:
supportsCountDistinctWithMultipleFieldsin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
requiresTableInIndexDropDDL
public boolean requiresTableInIndexDropDDL()
INTERNAL: Return if this database requires the table name when dropping an index.- Overrides:
requiresTableInIndexDropDDLin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
supportsGlobalTempTables
public boolean supportsGlobalTempTables()
INTERNAL: MySQL supports temp tables for update-all, delete-all queries.- Overrides:
supportsGlobalTempTablesin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
supportsIndividualTableLocking
public boolean supportsIndividualTableLocking()
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 ...- Overrides:
supportsIndividualTableLockingin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
supportsStoredFunctions
public boolean supportsStoredFunctions()
- Overrides:
supportsStoredFunctionsin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
supportsAutoConversionToNumericForArithmeticOperations
public boolean supportsAutoConversionToNumericForArithmeticOperations()
Some db allow VARCHAR db field to be used in arithmetic operations automatically converting them to numeric: UPDATE OL_PHONE SET PHONE_ORDER_VARCHAR = (PHONE_ORDER_VARCHAR + 1) WHERE ... SELECT ... WHERE ... t0.MANAGED_ORDER_VARCHAR BETWEEN 1 AND 4 ...- Overrides:
supportsAutoConversionToNumericForArithmeticOperationsin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getDropDatabaseSchemaString
public String getDropDatabaseSchemaString(String schema)
Return the drop schema definition. Subclasses should override as needed.- Overrides:
getDropDatabaseSchemaStringin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
shouldAlwaysUseTempStorageForModifyAll
public boolean shouldAlwaysUseTempStorageForModifyAll()
INTERNAL: MySQL supports temp tables for update-all, delete-all queries.- Overrides:
shouldAlwaysUseTempStorageForModifyAllin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
shouldPrintStoredProcedureArgumentNameInCall
public boolean shouldPrintStoredProcedureArgumentNameInCall()
INTERNAL: MySQL stored procedure calls do not require the argument name be printed in the call string e.g. call MyStoredProc(?) instead of call MyStoredProc(myvariable = ?)- Overrides:
shouldPrintStoredProcedureArgumentNameInCallin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
shouldPrintForUpdateClause
public boolean shouldPrintForUpdateClause()
INTERNAL: MySQL FOR UPDATE clause has to be the last- Overrides:
shouldPrintForUpdateClausein classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getIdentifierQuoteCharacter
public String getIdentifierQuoteCharacter()
Deprecated.INTERNAL: MySQL uses ' to allow identifier to have spaces.- Overrides:
getIdentifierQuoteCharacterin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform- Returns:
- The quote character for this platform
- See Also:
DatasourcePlatform.getStartDelimiter(),DatasourcePlatform.getEndDelimiter()
-
getInOutputProcedureToken
public String getInOutputProcedureToken()
INTERNAL: MySQL uses the INOUT keyword for this.- Overrides:
getInOutputProcedureTokenin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getProcedureAsString
public String getProcedureAsString()
MySQL does not use the AS token.- Overrides:
getProcedureAsStringin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
shouldPrintOutputTokenAtStart
public boolean shouldPrintOutputTokenAtStart()
INTERNAL: MySQL requires the direction at the start of the argument.- Overrides:
shouldPrintOutputTokenAtStartin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getProcedureCallHeader
public String getProcedureCallHeader()
INTERNAL: Used for stored procedure calls.- Overrides:
getProcedureCallHeaderin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getProcedureBeginString
public String getProcedureBeginString()
INTERNAL: MySQL requires BEGIN.- Overrides:
getProcedureBeginStringin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
getProcedureEndString
public String getProcedureEndString()
INTERNAL: MySQL requires END.- Overrides:
getProcedureEndStringin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
writeUpdateOriginalFromTempTableSql
public void writeUpdateOriginalFromTempTableSql(Writer writer, org.eclipse.persistence.internal.helper.DatabaseTable table, Collection pkFields, Collection assignedFields) throws IOException
INTERNAL: Writes MySQL specific SQL for accessing temp tables for update-all queries.- Overrides:
writeUpdateOriginalFromTempTableSqlin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform- Throws:
IOException
-
writeDeleteFromTargetTableUsingTempTableSql
public void writeDeleteFromTargetTableUsingTempTableSql(Writer writer, org.eclipse.persistence.internal.helper.DatabaseTable table, org.eclipse.persistence.internal.helper.DatabaseTable targetTable, Collection pkFields, Collection targetPkFields, org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform platform) throws IOException
INTERNAL: Writes MySQL specific SQL for accessing temp tables for delete-all queries.- Overrides:
writeDeleteFromTargetTableUsingTempTableSqlin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform- Throws:
IOException
-
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)Description copied from class:org.eclipse.persistence.internal.databaseaccess.DatabasePlatformINTERNAL: Print the SQL representation of the statement on a stream, storing the fields in the DatabaseCall.- Overrides:
printSQLSelectStatementin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
requiresProcedureBrackets
public boolean requiresProcedureBrackets()
Used for stored procedure creation: MySQL platforms need brackets around arguments declaration even if no arguments exist.- Overrides:
requiresProcedureBracketsin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform
-
printStoredFunctionReturnKeyWord
public void printStoredFunctionReturnKeyWord(Writer writer) throws IOException
INTERNAL: Prints return keyword for StoredFunctionDefinition: CREATE FUNCTION StoredFunction_In (P_IN BIGINT) RETURN BIGINT The method was introduced because MySQL requires "RETURNS" instead: CREATE FUNCTION StoredFunction_In (P_IN BIGINT) RETURNS BIGINT- Overrides:
printStoredFunctionReturnKeyWordin classorg.eclipse.persistence.internal.databaseaccess.DatabasePlatform- Throws:
IOException
-
-