diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/MySQLPlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/MySQLPlatform.java index 4fc5ffcf05e..2641ced178f 100644 --- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/MySQLPlatform.java +++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/MySQLPlatform.java @@ -40,7 +40,6 @@ import java.util.Hashtable; import java.util.List; import java.util.Vector; - import org.eclipse.persistence.exceptions.ValidationException; import org.eclipse.persistence.expressions.ExpressionOperator; import org.eclipse.persistence.internal.databaseaccess.DatabaseCall; @@ -919,6 +918,53 @@ public boolean checkTableExists(final DatabaseSessionImpl session, } } + @Override + public boolean isAlterSequenceObjectSupported() { + return false; + } + + /** + * INTERNAL: + * Returns sql used to create sequence object in the database. + */ + @Override + public Writer buildSequenceObjectCreationWriter(Writer writer, String fullSeqName, int increment, int start) throws IOException { + writer.write("CREATE SEQUENCE "); + writer.write(fullSeqName); + if(start != 1) { + writer.write(" START WITH " + start); + } + if (increment != 1) { + writer.write(" INCREMENT BY " + increment); + } + return writer; + } + + /** + * INTERNAL: + * Returns sql used to delete sequence object from the database. + */ + @Override + public Writer buildSequenceObjectDeletionWriter(Writer writer, String fullSeqName) throws IOException { + writer.write("DROP SEQUENCE "); + writer.write(fullSeqName); + return writer; + } + + @Override + public ValueReadQuery buildSelectQueryForSequenceObject(String seqName, Integer size) { + StringBuilder builder = new StringBuilder(26 + seqName.length()); + builder.append("SELECT NEXTVAL("); + builder.append(seqName); + builder.append(")"); + return new ValueReadQuery(builder.toString()); + } + + @Override + public boolean supportsSequenceObjects() { + return true; + } + /** * INTERNAL: * This method returns the query to select the UUID