Currently, a sequence in Derby always uses a pre allocating cache. I'm working on an usecase which requires a number to increase with a fixed value. The usecase fails after a restart because of the pre allocating cache.
I've created a patch that adds the options CACHE | NO CACHE to the create sequence statement. When no cache is provided, the pre allocating cache size will be set to 1, which results in a "no cache sequence".
I've followed the CYCLE | NO CYCLE code as much as possible. Tested it in my own app and it seems to work fine.
RH: Note that part of this issue has been addressed by the work on
DERBY-4437. Sequence values will NOT leak now if you perform an orderly shutdown of your database. However, values still leak if the VM exits before the database has been shutdown. I have changed this issue's title to indicate that the remaining work applies to both sequences and identity columns.