openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Di Wu Lau (JIRA)" <>
Subject [jira] [Updated] (OPENJPA-2390) HSQLDB SELECT NEXT VALUE FOR Sequence will skip 1 sequence value if allocation size is 1
Date Wed, 19 Jun 2013 19:53:20 GMT


Di Wu Lau updated OPENJPA-2390:

    Attachment: OPENJPA-2390.patch

Problem is fixed by adding LIMIT 1 to the nextSequenceQuery String in HSQLDictionary. This
force the sequence to hand back only 1 value at a time. 

Any version that is lower than 2.1.0 does not need to add LIMIT 1. The older versions do not
have the skipping problem.

To make the code more compatible, I added some conditions in HSQLDictionary to check the HSQL
versions so that only version 2.1.0 and beyond will add LIMIT 1 to the nextSequenceQuery.

Uploadded is my patch file. In this file, I added two test cases that use allocationSize=1
and allocationSize=2 to demonstrate the problem.


> HSQLDB SELECT NEXT VALUE FOR Sequence will skip 1 sequence value if allocation size is
> ----------------------------------------------------------------------------------------
>                 Key: OPENJPA-2390
>                 URL:
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: jdbc
>    Affects Versions: 2.2.1
>            Reporter: René Link
>         Attachments:, OPENJPA-2390.patch
> The HSQLDictionary sets the DBDictionary.nextSequenceQuery to "SELECT NEXT VALUE FOR
{0} FROM INFORMATION_SCHEMA.SYSTEM_SEQUENCES" when the HSQLDictionary is initialized.
> The NativeJDBCSeq uses
>  _select = MessageFormat.format(format, new Object[]{name, String.valueOf(_allocate *
> to build the select next value sql. The format is pased 2 arguments "name" and "_allocate
* _increment"
> but the second is not honored by the nextSequenceQuery.
> So when the allocation size is set to 1 the hsqldb nextSequenceQuery statement will return
2 next values
> anyway. That is why always one next value will be skipped... 1, 3, 5, 7, and so on.
> The nextSequenceQuery should be set with an limit. E.g.
> I will attatch an unit test that uses in memory hsqldb to show the problem soon.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:

View raw message