Hi Mark, I've just run the PooledHiLoSequenceIdentifierTest test after modifying the TABLE to SEQUENCE to see how it works and this is what I found:
1. SchemaCreatorImpl calls String[] getCreateSequenceStrings(String sequenceName, int initialValue, int incrementSize) 2. The String getCreateSequenceString(String sequenceName, int initialValue, int incrementSize) is then called which does this: if ( supportsPooledSequences() ) { return getCreateSequenceString( sequenceName ) + " start with " + initialValue + " increment by " + incrementSize; } throw new MappingException( getClass().getName() + " does not support pooled sequences" ); Now, this method is overridden in PostgreSQL and HSQLDB dialects. I think we should create the sequence generator as indicated in this Firebird documentation: http://firebirdsql.org/manual/generatorguide-sqlsyntax.html Shouldn't we use GEN_ID for the pooled optimizers? Vlad On Thu, Jul 28, 2016 at 12:54 PM, Mark Rotteveel <m...@lawinegevaar.nl> wrote: > I'm working on improving support for Firebird in Hibernate, and I have > run into a problem where > org.hibernate.tool.schema.internal.SchemaCreatorImpl is always trying to > create a pooled sequence. > > Specifically: > > applySqlStrings( > dialect.getCreateSequenceStrings( > > jdbcEnvironment.getQualifiedObjectNameFormatter().format( > sequence.getName(), dialect ), > sequence.getInitialValue(), > sequence.getIncrementSize() > ), > formatter, > options, > targets > ); > > With the default implementation this results in a > org.hibernate.MappingException: org.hibernate.dialect.FirebirdDialect > does not support pooled sequences (or at least: not by specifying it in > the DDL). > > I'd like to know if I should just override > protected String getCreateSequenceString(String sequenceName, int > initialValue, int incrementSize) > > and ignore the initialValue and incrementSize and just return the result > of getCreateSequenceString(sequenceName) > > or if I should change the above code to call the deprecated(!) method > getCreateSequenceStrings(String sequenceName) is > supportsPooledSequences() is false: > > dialect.supportsPooledSequences() > ? dialect.getCreateSequenceStrings( > > jdbcEnvironment.getQualifiedObjectNameFormatter().format( > sequence.getName(), dialect ), > sequence.getInitialValue(), > sequence.getIncrementSize() > ) : dialect.getCreateSequenceStrings( > > jdbcEnvironment.getQualifiedObjectNameFormatter().format( > sequence.getName(), dialect ) > ), > > Kind regards, > Mark Rotteveel > -- > Mark Rotteveel > _______________________________________________ > hibernate-dev mailing list > hibernate-dev@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/hibernate-dev > _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev