> And does DISJOINT map to:
> 
>  SELECT * FROM ARTIST WHERE ARTIST_NAME LIKE 'X%' FETCH LIMIT 10;
>  SELECT * FROM PAINTING WHERE true;

Effectively yes. With some extra nastiness like joins inherited from the parent 
query.

> Are you proposing this new join type be:
> 
>  SELECT * FROM ARTIST WHERE ARTIST_NAME LIKE 'X%' FETCH LIMIT 10;
>  SELECT * FROM PAINTING WHERE ARTIST_ID IN (123, 124, ....)

Yes.

Andrus




On Jan 30, 2012, at 1:12 PM, Aristedes Maniatis wrote:

> On 30/01/12 8:21 PM, Andrus Adamchik wrote:
>> 
>> On Jan 30, 2012, at 12:13 PM, Aristedes Maniatis wrote:
>> 
>>> Isn't this just a bug in the old DISJOINT approach rather than a new type 
>>> of prefetch? What is the use-case for fetching all related records in the 
>>> database when you have a fetch limit?
>> 
>> This is not a bug, rather a limitation of the algorithm. DISJOINT approach 
>> is based on the root query qualifier transposed for the related entity. It 
>> has no way of knowing which root objects will get below the fetch limit.
>> 
>> Root:
>> 
>>  SELECT * FROM ARTIST WHERE ARTIST_NAME LIKE 'X%' FETCH LIMIT 10;
>> 
>> Prefetch
>> 
>>  SELECT PAINTING.* FROM PAINTING JOIN ARTIST ON (..) WHERE 
>> ARTIST.ARTIST_NAME LIKE 'X%' FETCH LIMIT ????
>> 
>> Andrus
> 
> And does DISJOINT map to:
> 
>  SELECT * FROM ARTIST WHERE ARTIST_NAME LIKE 'X%' FETCH LIMIT 10;
>  SELECT * FROM PAINTING WHERE true;
> 
> 
> Are you proposing this new join type be:
> 
>  SELECT * FROM ARTIST WHERE ARTIST_NAME LIKE 'X%' FETCH LIMIT 10;
>  SELECT * FROM PAINTING WHERE ARTIST_ID IN (123, 124, ....)
> 
> 
> 
> Ari
> 
> 
> -- 
> -------------------------->
> Aristedes Maniatis
> GPG fingerprint CBFB 84B4 738D 4E87 5E5C  5EFA EF6A 7D2E 3E49 102A
> 

Reply via email to