Bug #152
Exception on not-well-formed OPTIONAL queries
Start date:
Due date:
% Done:
0%
Estimated time:
Resolution:
fixed
Description
The W3C test include the following:
Nested-optionals with a shared variable that does not appear in
the middle pattern (a not well-formed query pattern as per
"Semantics and Complexity" of SPARQL
The query is:
PREFIX : <http://example/> SELECT * { ?X :name "paul" {?Y :name "george" . OPTIONAL { ?X :email ?Z } } }
There data is on the W3C site
On running this query we get:
org.mulgara.query.QueryException: Query failed at org.mulgara.resolver.DatabaseSession.execute(DatabaseSession.java:754) at org.mulgara.resolver.DatabaseSession.query(DatabaseSession.java:464) at org.openrdf.sail.mulgara.MulgaraTripleSource.evaluate(MulgaraTripleSource.java:111) at org.openrdf.sail.mulgara.MulgaraEvaluationStrategy.evaluate(MulgaraEvaluationStrategy.java:50) ... 27 more Caused by: org.mulgara.query.MulgaraTransactionException: Transaction rollback triggered at org.mulgara.resolver.MulgaraInternalTransaction.implicitRollback(MulgaraInternalTransaction.java:516) at org.mulgara.resolver.MulgaraInternalTransaction.execute(MulgaraInternalTransaction.java:627) at org.mulgara.resolver.DatabaseSession.execute(DatabaseSession.java:751) ... 30 more Caused by: org.mulgara.query.QueryException: Failed to resolve constraintExpression at org.mulgara.resolver.ConstraintOperations.resolveConstraintExpression(ConstraintOperations.java:197) at org.mulgara.resolver.LocalQueryResolver.resolveE(LocalQueryResolver.java:269) at org.mulgara.resolver.DatabaseOperationContext.doQuery(DatabaseOperationContext.java:786) at org.mulgara.resolver.QueryOperation.execute(QueryOperation.java:139) at org.mulgara.resolver.MulgaraInternalTransaction.execute(MulgaraInternalTransaction.java:623) ... 31 more Caused by: org.mulgara.query.TuplesException: Bad [[LocalNode]] in constraint. constraint.getElement(0) returned a [[LocalNode]] with value: 0 constraint=[gn0 gn1449 gn1481 gn1369] at org.mulgara.resolver.store.StatementStoreResolution.defineIndex(StatementStoreResolution.java:308) at org.mulgara.resolver.store.StatementStoreResolution.<init>(StatementStoreResolution.java:156) at org.mulgara.resolver.store.StatementStoreResolution.reresolve(StatementStoreResolution.java:371) at org.mulgara.store.tuples.TuplesOperations.resolveNewlyBoundFreeNames(TuplesOperations.java:563) at org.mulgara.store.tuples.TuplesOperations.unifyOperands(TuplesOperations.java:464) at org.mulgara.store.tuples.TuplesOperations.join(TuplesOperations.java:244) at org.mulgara.resolver.DefaultConstraintHandlers$5.resolve(DefaultConstraintHandlers.java:165) at org.mulgara.resolver.ConstraintOperations.resolveConstraintExpression(ConstraintOperations.java:187) ... 35 more