private int checkNode(BOp bop) { int cnt = 0; for (BOp arg: bop.args()) { cnt += checkNode(arg); } if (bop instanceof ValueExpressionNode) { for (BOp arg: ((ValueExpressionNode)bop).getValueExpression().args()) { cnt+=checkNode(arg); } } if (bop instanceof ConstantNode) { // constant node in AST BigdataValue value = ((ConstantNode)bop).getValue(); if (value instanceof BigdataLiteral && XMLSchema.DATE.equals(((BigdataLiteral)value).getDatatype())) { assertFalse(((BigdataLiteral)value).getIV().isNullIV()); assertTrue(value.getIV() instanceof LiteralExtensionIV); cnt++; } } if (bop instanceof Constant) { // constant in valueExpr IV value = (IV) ((Constant)bop).get(); assertFalse(value.isNullIV()); assertTrue(value instanceof LiteralExtensionIV || value instanceof XSDBooleanIV); cnt++; } return cnt; } }
@SuppressWarnings("unchecked") private void testQuery(final BigdataSailRepositoryConnection conn, final String query, final int expectedIVs) throws MalformedQueryException, RepositoryException, QueryEvaluationException { TupleQuery tq = conn.prepareTupleQuery(QueryLanguage.SPARQL, query); TupleQueryResult tqr = tq.evaluate(); try { int cnt = 0; while (tqr.hasNext()) { tqr.next(); cnt++; } // assertEquals("Expected 1 row in resultset", 1, cnt); QueryRoot queryRoot = ((BigdataSailTupleQuery)tq).getASTContainer().getOriginalAST(); cnt = 0; for (Object filterNode: queryRoot.getWhereClause().getChildren(FilterNode.class)) { cnt += checkNode((BOp)filterNode); } assertEquals("Expected inlined IV for date literal", expectedIVs, cnt); } finally { tqr.close(); } }
private int checkNode(BOp bop) { int cnt = 0; for (BOp arg: bop.args()) { cnt += checkNode(arg); } if (bop instanceof ValueExpressionNode) { for (BOp arg: ((ValueExpressionNode)bop).getValueExpression().args()) { cnt+=checkNode(arg); } } if (bop instanceof ConstantNode) { // constant node in AST BigdataValue value = ((ConstantNode)bop).getValue(); if (value instanceof BigdataLiteral && XMLSchema.DATE.equals(((BigdataLiteral)value).getDatatype())) { assertFalse(((BigdataLiteral)value).getIV().isNullIV()); assertTrue(value.getIV() instanceof LiteralExtensionIV); cnt++; } } if (bop instanceof Constant) { // constant in valueExpr IV value = (IV) ((Constant)bop).get(); assertFalse(value.isNullIV()); assertTrue(value instanceof LiteralExtensionIV || value instanceof XSDBooleanIV); cnt++; } return cnt; } }
@SuppressWarnings("unchecked") private void testQuery(final BigdataSailRepositoryConnection conn, final String query, final int expectedIVs) throws MalformedQueryException, RepositoryException, QueryEvaluationException { TupleQuery tq = conn.prepareTupleQuery(QueryLanguage.SPARQL, query); TupleQueryResult tqr = tq.evaluate(); try { int cnt = 0; while (tqr.hasNext()) { tqr.next(); cnt++; } // assertEquals("Expected 1 row in resultset", 1, cnt); QueryRoot queryRoot = ((BigdataSailTupleQuery)tq).getASTContainer().getOriginalAST(); cnt = 0; for (Object filterNode: queryRoot.getWhereClause().getChildren(FilterNode.class)) { cnt += checkNode((BOp)filterNode); } assertEquals("Expected inlined IV for date literal", expectedIVs, cnt); } finally { tqr.close(); } }