db-ojb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jakob Braeuchi <jbraeu...@gmx.ch>
Subject Re: Query startAt endAt
Date Wed, 19 Nov 2003 18:20:31 GMT
hi wallace,

the current implementation (aka OJB-paging) work for 
getCollectionByQuery only. the start-offset is used to position the 
cursor of the resultset (rs.absolute()).
but this only works for jdbclevel >= 2.0

the new implementation of OJB-paging will use a paging iterator to wrap 
the original iterator, so it works for iterators as well but it still 
needs jdbclevel >= 2.0

hth
jakob


Gelhar, Wallace Joseph wrote:
> Hi Jakob,
> 
> Will you elaborate on how the current paging works?  What are the driver / platform requirements
to make it work? 
> 
> I ask because I have never gotten paging to work for startAtIndex > 0.
> 
> My platform is WinXP / Tomcat 4.1 / MS SQL Server 2K / MS JDBC Driver.
> 
> My extremely crude hack is too retrieve an iterator and count the index to materialize
the relevant objects. 
> 
> Any suggestions?
> 
> Wally Gelhar
> 
> -----Original Message-----
> From: "Jakob Bräuchi" [mailto:jbraeuchi@gmx.ch] 
> Sent: Tuesday, November 18, 2003 9:09 AM
> To: thma@apache.org
> Cc: ojb-dev@db.apache.org
> Subject: Re: Query startAt endAt
> 
> 
> hi all,
> 
> i have to inform you, that paging by SQL is not yet an option :( because we execute a
select for each extent. but i think i found a way to improve OJB-paging be it for collections
or iterators.
> 
> as soon as time permits i will start working on the new solution. 
> 
> 
> jakob
> 
> 
>>Hi Jakob
>>
>><snip>
>>
>>>>Personally, I prefer LIMIT and OFFSET approach. Try to explain:
>>>
>>>
>>>i also prefer the OFFSET and LIMIT.
>>
>>+1
>>
>>cu,
>>Thomas
>>
>>
>>>we do have a problem with dbms only
>>>supporting OFFSET (oracle, sapdb etc.) there is a way to solve this 
>>>problem by using an enclosing query:
>>>
>>>select * from
>>>(
>>>  select ... , rownum as ojb_rnum where .... order by ...
>>>) where ojb_rnum between OFFSET and OFFSET + LIMIT
>>>
>>>
>>>jakob
>>>
>>>
>>>
>>>>StartAt = OFFSET
>>>>endAt = OFFSET + LIMIT
>>>>
>>>>But:
>>>>
>>>>"endAt" indicates that it need to end at a given index. But this 
>>>>index does not necesary exists. Suppose 5 row in a table and we 
>>>>use:
>>>>
>>>>startAt = 1, endAt = 10
>>>>
>>>>The "endAt" index never will be reached. For me the endAt in this 
>>>>case does not exactly describe what we are requesting.
>>>>
>>>>On the other hand:
>>>>
>>>>startAt = 1, limit = 10 => This is correct, it means we will start 
>>>>at 1 and we will retrieve at max 10 rows. But there is not an 
>>>>implicit index of the  last one. Also using limit= 10 avoid us to 
>>>>doing some innecesary "maths". We cleary express the max. amount of 
>>>>rows we expect to recieve in
>>>>a very easy way. It is easier from a programming view. You will not
>>
>>need
>>
>>>>to sum the 2 values to get the endAt value.
>>>>
>>>>I just tried to explain my view point. Of course, comments are
>>>>welcome. :-D
>>>>
>>>>Best Regards,
>>>>
>>>>Antonio Gallardo
>>>>
>>>>-------------------------------------------------------------------
>>>>--
>>>>To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
>>>>For additional commands, e-mail: ojb-dev-help@db.apache.org
>>>>
>>>>
>>>
>>>
>>>--------------------------------------------------------------------
>>>-
>>>To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
>>>For additional commands, e-mail: ojb-dev-help@db.apache.org
>>>
>>>
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
>>For additional commands, e-mail: ojb-dev-help@db.apache.org
>>
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org


Mime
View raw message