[ https://issues.apache.org/jira/browse/JENA-1365?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16057397#comment-16057397 ]
Andy Seaborne commented on JENA-1365: ------------------------------------- The related formatter change is: https://github.com/apache/jena/commit/f19d8b267e1976f655e2c7509e6c7ce67c0c9496#diff-9aaed90671f0c690e61dc6dcf937cefeL240 when the formatter for UNION should look like: {noformat} @Override public void visit(ElementUnion el) { if ( el.getElements().size() == 1 ) { // If this is an element of just one, just do it in-place return ; } . . . {noformat} > 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 > > 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)