Thanks for response. We switched to 1.3 branch and problem gone

среда, 10 сентября 2014 г., 11:44:29 UTC+6 пользователь Thomas Mueller 
написал:
>
> Hi,
>
> Yes, I can reproduce this problem. Thanks a lot for reporting! It happens 
> because of the (partially) descending index. It will be fixed in the next 
> release. A workaround is to use version 1.3.x, or (with 1.4.x), don't use 
> descending indexes.
>
> Regards,
> Thomas
>
>
> On Monday, September 8, 2014, Damir Sultanbekov <[email protected] 
> <javascript:>> wrote:
>
>> Small addition, I use h2 in Postgre mode, datasource is created as 
>> follows:
>>
>> <bean id="dataSource" 
>> class="org.springframework.jdbc.datasource.SimpleDriverDataSource">
>> <property name="driverClass" value="org.h2.Driver"/>
>> <property name="url" 
>> value="jdbc:h2:mem:test;MODE=PostgreSQL;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE"/>
>> <property name="username" value="sa"/>
>> <property name="password" value=""/>
>> </bean>
>>
>> понедельник, 8 сентября 2014 г., 10:56:45 UTC+6 пользователь Damir 
>> Sultanbekov написал:
>>>
>>> Hello.
>>>
>>> Recently I spend about 3 hours trying to debug very simple query.
>>> I use spring-jdbc whith junit and h2 v1.4.181 (latest from Maven 
>>> Central).
>>>
>>> First I initialize db with following scripts:
>>>
>>> -- DDL
>>> create table leaderboard (
>>> player_id integer not null,
>>> type integer not null,
>>> distance integer not null,
>>> constraint pk_leaderboard primary key (player_id, type),
>>> constraint chk_leaderboard_type check (type in (1, 2, 3))
>>> );
>>>
>>> create index i_leaderboard_type_distance on leaderboard(type, distance 
>>> desc);
>>>
>>> -- Data
>>> insert into leaderboard (player_id, type, distance) values (1, 1, 101);
>>> insert into leaderboard (player_id, type, distance) values (1, 2, 201);
>>> insert into leaderboard (player_id, type, distance) values (2, 1, 102);
>>>
>>>
>>> Then I invoke following code from my unit-test:
>>>
>>> List list = jdbcTemplate.queryForList("select * from leaderboard");
>>> System.out.println(" NONE: " + list);
>>> list = jdbcTemplate.queryForList("select * from leaderboard where type 
>>> = 1");
>>> System.out.println(" 1: " + list); 
>>>
>>> And output is very strange:
>>>  NONE: [{PLAYER_ID=1, TYPE=1, DISTANCE=101}, {PLAYER_ID=1, TYPE=2, 
>>> DISTANCE=201}, {PLAYER_ID=2, TYPE=1, DISTANCE=102}]
>>>  1: []
>>>
>>> First query shows all three rows as expected, but second shows empty 
>>> result (2 rows expected).
>>>
>>> It tooks me about 3 hours to find out that index is the culprit. If I 
>>> remove 'create index' from DDL everything starts working:
>>>
>>>  NONE: [{PLAYER_ID=1, TYPE=1, DISTANCE=101}, {PLAYER_ID=1, TYPE=2, 
>>> DISTANCE=201}, {PLAYER_ID=2, TYPE=1, DISTANCE=102}]
>>>  1: [{PLAYER_ID=1, TYPE=1, DISTANCE=101}, {PLAYER_ID=2, TYPE=1, 
>>> DISTANCE=102}]
>>>
>>> It looks like bug for me. Is it true?
>>>
>>  -- 
>> You received this message because you are subscribed to the Google Groups 
>> "H2 Database" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/h2-database.
>> For more options, visit https://groups.google.com/d/optout.
>>
>

-- 
You received this message because you are subscribed to the Google Groups "H2 
Database" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/h2-database.
For more options, visit https://groups.google.com/d/optout.

Reply via email to