You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jena.apache.org by "Andy Seaborne (JIRA)" <ji...@apache.org> on 2014/05/28 17:26:01 UTC

[jira] [Updated] (JENA-706) wrong assignment in filter evaluation

     [ https://issues.apache.org/jira/browse/JENA-706?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andy Seaborne updated JENA-706:
-------------------------------

    Description: 
Hi all, 
we believe we’ve spotted a bug in the current arq/jena release:

The following dummy data and query replicates the process:
{noformat}
---- DATA ---
@prefix : <http://example.org/> .
:a :b :c.
# :a :a :b .
{noformat}
---- QUERY 
{noformat}
SELECT DISTINCT *
WHERE{
  { { ?Y ?Z ?T }
    UNION
    { ?X ?Y <http://example.org/b> }
  }     
  FILTER (?X = ?Y)
}
{noformat}
{noformat}
$ arq --query query1.rq --data data02.ttl --explain
01:25:37 INFO  exec                 :: QUERY
 SELECT DISTINCT  *
 WHERE
   { {   { ?Y ?Z ?T }
       UNION
         { ?X ?Y <http://example.org/b> }
     }
     FILTER ( ?X = ?Y )
   }
01:25:37 INFO  exec                 :: ALGEBRA
 (distinct
   (assign ((?X ?Y))
     (union
       (bgp (triple ?Y ?Z ?T))
       (bgp (triple ?Y ?Y <http://example.org/b>)))))
01:25:37 INFO  exec                 :: BGP :: (?Y ?Z ?T)
01:25:37 INFO  exec                 :: Reorder :: (?Y ?Z ?T)
01:25:37 INFO  exec                 :: BGP :: (?Y ?Y <http://example.org/b>)
01:25:37 INFO  exec                 :: Reorder :: (?Y ?Y <http://example.org/b>)
-----------------------------------------------------------------------------------------------------
| Y                      | Z                      | T                      | X                      |
=====================================================================================================
| <http://example.org/a> | <http://example.org/b> | <http://example.org/c> | <http://example.org/a> |
——————————————————————————————————————————————————
{noformat}

particularly, the assign ((?X ?Y)) in the algebra expression is puzzling

Here our setup:
{noformat}
$ arq --version
Jena:       VERSION: 2.11.0
Jena:       BUILD_DATE: 2013-09-12T10:49:49+0100
ARQ:        VERSION: 2.11.0
ARQ:        BUILD_DATE: 2013-09-12T10:49:49+0100
RIOT:       VERSION: 2.11.0
RIOT:       BUILD_DATE: 2013-09-12T10:49:49+0100
{noformat}

verified on several platforms (mac os, Linux)
We originally spotted the bug in Fuseki:
It does not yet occur in 
 jena-fuseki-0.2.7-distribution.zip                    2013-05-15 13:38  9.2M
but seems to only occur since release 
 jena-fuseki-1.0.0-distribution.zip                    2013-09-18 09:11  
and later (also in 1.0.1)

best regards,

  was:
Hi all, 
we believe we’ve spotted a bug in the current arq/jena release:

The following dummy data and query replicates the process:
---- DATA ---
@prefix : <http://example.org/> .
:a :b :c.
# :a :a :b .
----
---- QUERY 
SELECT DISTINCT *
WHERE{
  { { ?Y ?Z ?T }
    UNION
    { ?X ?Y <http://example.org/b> }
  }     
  FILTER (?X = ?Y)
}


$ arq --query query1.rq --data data02.ttl --explain
01:25:37 INFO  exec                 :: QUERY
 SELECT DISTINCT  *
 WHERE
   { {   { ?Y ?Z ?T }
       UNION
         { ?X ?Y <http://example.org/b> }
     }
     FILTER ( ?X = ?Y )
   }
01:25:37 INFO  exec                 :: ALGEBRA
 (distinct
   (assign ((?X ?Y))
     (union
       (bgp (triple ?Y ?Z ?T))
       (bgp (triple ?Y ?Y <http://example.org/b>)))))
01:25:37 INFO  exec                 :: BGP :: (?Y ?Z ?T)
01:25:37 INFO  exec                 :: Reorder :: (?Y ?Z ?T)
01:25:37 INFO  exec                 :: BGP :: (?Y ?Y <http://example.org/b>)
01:25:37 INFO  exec                 :: Reorder :: (?Y ?Y <http://example.org/b>)
-----------------------------------------------------------------------------------------------------
| Y                      | Z                      | T                      | X                      |
=====================================================================================================
| <http://example.org/a> | <http://example.org/b> | <http://example.org/c> | <http://example.org/a> |
——————————————————————————————————————————————————

particularly, the assign ((?X ?Y)) in the algebra expression is puzzling

Here our setup:
$ arq --version
Jena:       VERSION: 2.11.0
Jena:       BUILD_DATE: 2013-09-12T10:49:49+0100
ARQ:        VERSION: 2.11.0
ARQ:        BUILD_DATE: 2013-09-12T10:49:49+0100
RIOT:       VERSION: 2.11.0
RIOT:       BUILD_DATE: 2013-09-12T10:49:49+0100

verified on several platforms (mac os, Linux)
We originally spotted the bug in Fuseki:
It does not yet occur in 
 jena-fuseki-0.2.7-distribution.zip                    2013-05-15 13:38  9.2M
but seems to only occur since release 
 jena-fuseki-1.0.0-distribution.zip                    2013-09-18 09:11  
and later (also in 1.0.1)

best regards,


> wrong assignment in filter evaluation
> -------------------------------------
>
>                 Key: JENA-706
>                 URL: https://issues.apache.org/jira/browse/JENA-706
>             Project: Apache Jena
>          Issue Type: Bug
>          Components: ARQ
>    Affects Versions: Jena 2.10.0
>         Environment: Mac Os, Linux
>            Reporter: Jürgen Umbrich
>            Priority: Critical
>              Labels: performance
>
> Hi all, 
> we believe we’ve spotted a bug in the current arq/jena release:
> The following dummy data and query replicates the process:
> {noformat}
> ---- DATA ---
> @prefix : <http://example.org/> .
> :a :b :c.
> # :a :a :b .
> {noformat}
> ---- QUERY 
> {noformat}
> SELECT DISTINCT *
> WHERE{
>   { { ?Y ?Z ?T }
>     UNION
>     { ?X ?Y <http://example.org/b> }
>   }     
>   FILTER (?X = ?Y)
> }
> {noformat}
> {noformat}
> $ arq --query query1.rq --data data02.ttl --explain
> 01:25:37 INFO  exec                 :: QUERY
>  SELECT DISTINCT  *
>  WHERE
>    { {   { ?Y ?Z ?T }
>        UNION
>          { ?X ?Y <http://example.org/b> }
>      }
>      FILTER ( ?X = ?Y )
>    }
> 01:25:37 INFO  exec                 :: ALGEBRA
>  (distinct
>    (assign ((?X ?Y))
>      (union
>        (bgp (triple ?Y ?Z ?T))
>        (bgp (triple ?Y ?Y <http://example.org/b>)))))
> 01:25:37 INFO  exec                 :: BGP :: (?Y ?Z ?T)
> 01:25:37 INFO  exec                 :: Reorder :: (?Y ?Z ?T)
> 01:25:37 INFO  exec                 :: BGP :: (?Y ?Y <http://example.org/b>)
> 01:25:37 INFO  exec                 :: Reorder :: (?Y ?Y <http://example.org/b>)
> -----------------------------------------------------------------------------------------------------
> | Y                      | Z                      | T                      | X                      |
> =====================================================================================================
> | <http://example.org/a> | <http://example.org/b> | <http://example.org/c> | <http://example.org/a> |
> ——————————————————————————————————————————————————
> {noformat}
> particularly, the assign ((?X ?Y)) in the algebra expression is puzzling
> Here our setup:
> {noformat}
> $ arq --version
> Jena:       VERSION: 2.11.0
> Jena:       BUILD_DATE: 2013-09-12T10:49:49+0100
> ARQ:        VERSION: 2.11.0
> ARQ:        BUILD_DATE: 2013-09-12T10:49:49+0100
> RIOT:       VERSION: 2.11.0
> RIOT:       BUILD_DATE: 2013-09-12T10:49:49+0100
> {noformat}
> verified on several platforms (mac os, Linux)
> We originally spotted the bug in Fuseki:
> It does not yet occur in 
>  jena-fuseki-0.2.7-distribution.zip                    2013-05-15 13:38  9.2M
> but seems to only occur since release 
>  jena-fuseki-1.0.0-distribution.zip                    2013-09-18 09:11  
> and later (also in 1.0.1)
> best regards,



--
This message was sent by Atlassian JIRA
(v6.2#6252)