You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@rya.apache.org by "Caleb Meier (JIRA)" <ji...@apache.org> on 2017/05/04 13:39:04 UTC

[jira] [Comment Edited] (RYA-276) MergeJoin returns incorrect results if first iterator must advance

    [ https://issues.apache.org/jira/browse/RYA-276?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15996732#comment-15996732 ] 

Caleb Meier edited comment on RYA-276 at 5/4/17 1:38 PM:
---------------------------------------------------------

MergeJoin is not used anywhere in the evaluation process (or any where else in the code base for that matter).  As a matter of fact, I'm pretty sure that the entire package org.apache.rya.api.persist.query.join is not used.  We should delete this to avoid any further confusion.


was (Author: meiercaleb@gmail.com):
MergeJoin is not used anywhere in the evaluation process.  As a matter of fact, I'm pretty sure that the entire package org.apache.rya.api.persist.query.join is not used.  We should delete this to avoid any further confusion.

> MergeJoin returns incorrect results if first iterator must advance
> ------------------------------------------------------------------
>
>                 Key: RYA-276
>                 URL: https://issues.apache.org/jira/browse/RYA-276
>             Project: Rya
>          Issue Type: Bug
>          Components: dao
>    Affects Versions: 3.2.10, 3.2.9
>            Reporter: Jonathan Wonders
>            Priority: Minor
>         Attachments: 0001-Adding-tests-to-illustrate-merge-join-bug.patch
>
>
> The algorithm used for intersecting iterations over statements produces incorrect output for some types of input sequences.
> If the first iterator must advance due to the initial value of the first iterator preceding the initial value of a secondary iterator, the returned object will still be taken from the initial statement of the first iterator rather than the last statement it advanced to.  This is easy to fix by updating the current statement alongside the current object.
> There is another more complicated issue when the input data requires advancing a secondary iterator followed by advancing the first iterator (and optionally continuing to advance both back and forth).  The first iterator will never be advanced after an object greater than the current value of the first iterator is found.  This scenario occurs frequently in the wild when two iterators seek past each others latest value prior to finding one that appears in both.  The current implementation will include spurious results.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)