You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jena.apache.org by "Claude Warren (JIRA)" <ji...@apache.org> on 2017/06/24 21:54:02 UTC

[jira] [Resolved] (JENA-1365) QueryBuilder can build an invalid union-of-one query.

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

Claude Warren resolved JENA-1365.
---------------------------------
       Resolution: Fixed
    Fix Version/s: Jena 3.4.0

Updates completed and tested

> QueryBuilder can build an invalid union-of-one query.
> -----------------------------------------------------
>
>                 Key: JENA-1365
>                 URL: https://issues.apache.org/jira/browse/JENA-1365
>             Project: Apache Jena
>          Issue Type: Bug
>          Components: QueryBuilder
>    Affects Versions: Jena 3.3.0
>            Reporter: Claude Warren
>            Assignee: Claude Warren
>             Fix For: Jena 3.4.0
>
>
> From email chain betwen Claude and Andy
>     is the union-of-one still legal during the construction of the query?
> Its illegal in a query - UNION is
> {..} UNION {..} UNION {..}
>     The
>     expected usage in the builder is:
>     {noformat}
>     builder.addUnion( <select-type-statement> ).addUnion(
>     <select-type-statement>)
>     {noformat}
>     Currently the code builds a union-of-one and adds the next union to it. 
>     check to ensure that a union-of-one is not generated in the
>     final result.
> At a minimum it an error to generate a union of one.
> So either, throw an expection or generate "{ pattern }" (including inside {}) which is the moral equivalent.
> IMO The second is nicer.  Tat is what I changed the formatter to do so at least it generated something even if it is changing the query a bit (round trip checking will fail but then it fails currently as it can't be parsed at all)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)