1. Summary
  2. Files
  3. Support
  4. Report Spam
  5. Create account
  6. Log in

Ticket #534 (closed defect: fixed)

Opened 14 months ago

Last modified 14 months ago

BSBM BI Q5 Error when using MERGE JOIN

Reported by: thompsonbry Owned by: thompsonbry
Priority: major Milestone: Query
Component: Bigdata SAIL Version: BIGDATA_RELEASE_1_1_0
Keywords: Cc:

Description

The following problem has only been observed for this query when using the merge join. The problem appears with both the JVM and analytic (HTree) hash joins. You can workaround the problem by adding the following magic triple into the query:

  hint:Query hint:mergeJoin "false" .

The query, stack trace, etc. follow

Query
SPARQL

# BSBM BI Q5
#
# Query 5: Show the most popular products of a specific product type for each country - by review count
#
# Use Case Motivation: For advertisement reasons the owners of the e-commerce platform want to generate profiles for the two dimensions product type and the country of a customer. 
#
# Note: xsd:string() => str()

prefix bsbm: <http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/>
prefix bsbm-inst: <http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/>
prefix rev: <http://purl.org/stuff/rev#>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>

Select ?country ?product ?nrOfReviews ?avgPrice
{
  #hint:Query hint:mergeJoin "false" .
  { Select ?country (max(?nrOfReviews) As ?maxReviews)
    {
      { Select ?country ?product (count(?review) As ?nrOfReviews)
        {
          ?product a <http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/ProductType4> .
          ?review bsbm:reviewFor ?product ;
                  rev:reviewer ?reviewer .
          ?reviewer bsbm:country ?country .
        }
        Group By ?country ?product
      }
    }
    Group By ?country
  }
  { Select ?product (avg(xsd:float(str(?price))) As ?avgPrice)
#  { Select ?product (avg(xsd:float(xsd:string(?price))) As ?avgPrice)
    {
      ?product a <http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/ProductType4> .
      ?offer bsbm:product ?product .
      ?offer bsbm:price ?price .
    }
    Group By ?product
  }
  { Select ?country ?product (count(?review) As ?nrOfReviews)
    {
      ?product a <http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/ProductType4> .
      ?review bsbm:reviewFor ?product .
      ?review rev:reviewer ?reviewer .
      ?reviewer bsbm:country ?country .
    }
    Group By ?country ?product
  }
  FILTER(?nrOfReviews=?maxReviews)
}
Order By desc(?nrOfReviews) ?country ?product

Parse Tree

QueryContainer
 PrefixDecl (prefix=bsbm)
  IRI (http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/)
 PrefixDecl (prefix=bsbm-inst)
  IRI (http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/)
 PrefixDecl (prefix=rev)
  IRI (http://purl.org/stuff/rev#)
 PrefixDecl (prefix=xsd)
  IRI (http://www.w3.org/2001/XMLSchema#)
 SelectQuery
  Select
   ProjectionElem
    Var (country)
   ProjectionElem
    Var (product)
   ProjectionElem
    Var (nrOfReviews)
   ProjectionElem
    Var (avgPrice)
  WhereClause
   GraphPatternGroup
    GraphPatternGroup
     SelectQuery
      Select
       ProjectionElem
        Var (country)
       ProjectionElem
        Max
         Var (nrOfReviews)
        Var (maxReviews)
      WhereClause
       GraphPatternGroup
        GraphPatternGroup
         SelectQuery
          Select
           ProjectionElem
            Var (country)
           ProjectionElem
            Var (product)
           ProjectionElem
            Count
             Var (review)
            Var (nrOfReviews)
          WhereClause
           GraphPatternGroup
            BasicGraphPattern
             TriplesSameSubjectPath
              Var (product)
              PropertyListPath
               PathAlternative
                PathSequence
                 PathElt
                  IRI (http://www.w3.org/1999/02/22-rdf-syntax-ns#type)
               ObjectList
                IRI (http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/ProductType4)
             TriplesSameSubjectPath
              Var (review)
              PropertyListPath
               PathAlternative
                PathSequence
                 PathElt
                  IRI (http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/reviewFor)
               ObjectList
                Var (product)
               PropertyListPath
                PathAlternative
                 PathSequence
                  PathElt
                   IRI (http://purl.org/stuff/rev#reviewer)
                ObjectList
                 Var (reviewer)
             TriplesSameSubjectPath
              Var (reviewer)
              PropertyListPath
               PathAlternative
                PathSequence
                 PathElt
                  IRI (http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/country)
               ObjectList
                Var (country)
          GroupClause
           GroupCondition
            Var (country)
           GroupCondition
            Var (product)
      GroupClause
       GroupCondition
        Var (country)
    GraphPatternGroup
     SelectQuery
      Select
       ProjectionElem
        Var (product)
       ProjectionElem
        Avg
         FunctionCall
          IRI (http://www.w3.org/2001/XMLSchema#float)
          Str
           Var (price)
        Var (avgPrice)
      WhereClause
       GraphPatternGroup
        BasicGraphPattern
         TriplesSameSubjectPath
          Var (product)
          PropertyListPath
           PathAlternative
            PathSequence
             PathElt
              IRI (http://www.w3.org/1999/02/22-rdf-syntax-ns#type)
           ObjectList
            IRI (http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/ProductType4)
         TriplesSameSubjectPath
          Var (offer)
          PropertyListPath
           PathAlternative
            PathSequence
             PathElt
              IRI (http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/product)
           ObjectList
            Var (product)
         TriplesSameSubjectPath
          Var (offer)
          PropertyListPath
           PathAlternative
            PathSequence
             PathElt
              IRI (http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/price)
           ObjectList
            Var (price)
      GroupClause
       GroupCondition
        Var (product)
    GraphPatternGroup
     SelectQuery
      Select
       ProjectionElem
        Var (country)
       ProjectionElem
        Var (product)
       ProjectionElem
        Count
         Var (review)
        Var (nrOfReviews)
      WhereClause
       GraphPatternGroup
        BasicGraphPattern
         TriplesSameSubjectPath
          Var (product)
          PropertyListPath
           PathAlternative
            PathSequence
             PathElt
              IRI (http://www.w3.org/1999/02/22-rdf-syntax-ns#type)
           ObjectList
            IRI (http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/ProductType4)
         TriplesSameSubjectPath
          Var (review)
          PropertyListPath
           PathAlternative
            PathSequence
             PathElt
              IRI (http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/reviewFor)
           ObjectList
            Var (product)
         TriplesSameSubjectPath
          Var (review)
          PropertyListPath
           PathAlternative
            PathSequence
             PathElt
              IRI (http://purl.org/stuff/rev#reviewer)
           ObjectList
            Var (reviewer)
         TriplesSameSubjectPath
          Var (reviewer)
          PropertyListPath
           PathAlternative
            PathSequence
             PathElt
              IRI (http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/country)
           ObjectList
            Var (country)
      GroupClause
       GroupCondition
        Var (country)
       GroupCondition
        Var (product)
    BasicGraphPattern
     Constraint
      Compare (EQ)
       Var (nrOfReviews)
       Var (maxReviews)
  OrderClause
   OrderCondition (DESC)
    Var (nrOfReviews)
   OrderCondition
    Var (country)
   OrderCondition
    Var (product)

Original AST

PREFIX bsbm: <http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/>
PREFIX bsbm-inst: <http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/>
PREFIX rev: <http://purl.org/stuff/rev#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
QueryType: SELECT
includeInferred=true
SELECT VarNode(country) VarNode(product) VarNode(nrOfReviews) VarNode(avgPrice)
  JoinGroupNode {
    JoinGroupNode {
      QueryType: SELECT
      SELECT VarNode(country) ( com.bigdata.rdf.sparql.ast.FunctionNode(VarNode(nrOfReviews))[ com.bigdata.rdf.sparql.ast.FunctionNode.functionURI=http://www.w3.org/2006/sparql-functions#max] AS VarNode(maxReviews) )
        JoinGroupNode {
          JoinGroupNode {
            QueryType: SELECT
            SELECT VarNode(country) VarNode(product) ( com.bigdata.rdf.sparql.ast.FunctionNode(VarNode(review))[ com.bigdata.rdf.sparql.ast.FunctionNode.functionURI=http://www.w3.org/2006/sparql-functions#count] AS VarNode(nrOfReviews) )
              JoinGroupNode {
                StatementPatternNode(VarNode(product), ConstantNode(Vocab(14)[http://www.w3.org/1999/02/22-rdf-syntax-ns#type]), ConstantNode(TermId(69190U)[http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/ProductType4]), DEFAULT_CONTEXTS)
                StatementPatternNode(VarNode(review), ConstantNode(Vocab(107)[http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/reviewFor]), VarNode(product), DEFAULT_CONTEXTS)
                StatementPatternNode(VarNode(review), ConstantNode(TermId(13188701U)[http://purl.org/stuff/rev#reviewer]), VarNode(reviewer), DEFAULT_CONTEXTS)
                StatementPatternNode(VarNode(reviewer), ConstantNode(TermId(69857U)[http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/country]), VarNode(country), DEFAULT_CONTEXTS)
              }
            group by VarNode(country) VarNode(product)
            
          }
        }
      group by VarNode(country)
      
    }
    JoinGroupNode {
      QueryType: SELECT
      SELECT VarNode(product) ( com.bigdata.rdf.sparql.ast.FunctionNode(FunctionNode(null))[ com.bigdata.rdf.sparql.ast.FunctionNode.functionURI=http://www.w3.org/2006/sparql-functions#average] AS VarNode(avgPrice) )
        JoinGroupNode {
          StatementPatternNode(VarNode(product), ConstantNode(Vocab(14)[http://www.w3.org/1999/02/22-rdf-syntax-ns#type]), ConstantNode(TermId(69190U)[http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/ProductType4]), DEFAULT_CONTEXTS)
          StatementPatternNode(VarNode(offer), ConstantNode(TermId(1935477U)[http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/product]), VarNode(product), DEFAULT_CONTEXTS)
          StatementPatternNode(VarNode(offer), ConstantNode(TermId(1935476U)[http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/price]), VarNode(price), DEFAULT_CONTEXTS)
        }
      group by VarNode(product)
      
    }
    JoinGroupNode {
      QueryType: SELECT
      SELECT VarNode(country) VarNode(product) ( com.bigdata.rdf.sparql.ast.FunctionNode(VarNode(review))[ com.bigdata.rdf.sparql.ast.FunctionNode.functionURI=http://www.w3.org/2006/sparql-functions#count] AS VarNode(nrOfReviews) )
        JoinGroupNode {
          StatementPatternNode(VarNode(product), ConstantNode(Vocab(14)[http://www.w3.org/1999/02/22-rdf-syntax-ns#type]), ConstantNode(TermId(69190U)[http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/ProductType4]), DEFAULT_CONTEXTS)
          StatementPatternNode(VarNode(review), ConstantNode(Vocab(107)[http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/reviewFor]), VarNode(product), DEFAULT_CONTEXTS)
          StatementPatternNode(VarNode(review), ConstantNode(TermId(13188701U)[http://purl.org/stuff/rev#reviewer]), VarNode(reviewer), DEFAULT_CONTEXTS)
          StatementPatternNode(VarNode(reviewer), ConstantNode(TermId(69857U)[http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/country]), VarNode(country), DEFAULT_CONTEXTS)
        }
      group by VarNode(country) VarNode(product)
      
    }
    FILTER( com.bigdata.rdf.sparql.ast.FunctionNode(VarNode(nrOfReviews),VarNode(maxReviews))[ com.bigdata.rdf.sparql.ast.FunctionNode.functionURI=http://www.w3.org/2005/xpath-functions#equal-to] )
  }
order by com.bigdata.rdf.sparql.ast.OrderByExpr(VarNode(nrOfReviews))[ ascending=false] com.bigdata.rdf.sparql.ast.OrderByExpr(VarNode(country))[ ascending=true] com.bigdata.rdf.sparql.ast.OrderByExpr(VarNode(product))[ ascending=true]

Optimized AST

PREFIX bsbm: <http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/>
PREFIX bsbm-inst: <http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/>
PREFIX rev: <http://purl.org/stuff/rev#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
WITH {
  QueryType: SELECT
  SELECT ( VarNode(country) AS VarNode(country) ) ( com.bigdata.rdf.sparql.ast.FunctionNode(VarNode(nrOfReviews))[ com.bigdata.rdf.sparql.ast.FunctionNode.functionURI=http://www.w3.org/2006/sparql-functions#max, valueExpr=com.bigdata.bop.rdf.aggregate.MAX(nrOfReviews)] AS VarNode(maxReviews) )
    JoinGroupNode {
      QueryType: SELECT
      SELECT ( VarNode(country) AS VarNode(country) ) ( VarNode(product) AS VarNode(product) ) ( com.bigdata.rdf.sparql.ast.FunctionNode(VarNode(review))[ com.bigdata.rdf.sparql.ast.FunctionNode.functionURI=http://www.w3.org/2006/sparql-functions#count, valueExpr=com.bigdata.bop.rdf.aggregate.COUNT(review)] AS VarNode(nrOfReviews) )
        JoinGroupNode {
          StatementPatternNode(VarNode(product), ConstantNode(Vocab(14)[http://www.w3.org/1999/02/22-rdf-syntax-ns#type]), ConstantNode(TermId(69190U)[http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/ProductType4]), DEFAULT_CONTEXTS)
            com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.estimatedCardinality=41886
            com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.originalIndex=POS
          StatementPatternNode(VarNode(review), ConstantNode(Vocab(107)[http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/reviewFor]), VarNode(product), DEFAULT_CONTEXTS)
            com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.estimatedCardinality=2848260
            com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.originalIndex=POS
          StatementPatternNode(VarNode(review), ConstantNode(TermId(13188701U)[http://purl.org/stuff/rev#reviewer]), VarNode(reviewer), DEFAULT_CONTEXTS)
            com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.estimatedCardinality=2848260
            com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.originalIndex=POS
          StatementPatternNode(VarNode(reviewer), ConstantNode(TermId(69857U)[http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/country]), VarNode(country), DEFAULT_CONTEXTS)
            com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.estimatedCardinality=154607
            com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.originalIndex=POS
        }
      group by ( VarNode(country) AS VarNode(country) ) ( VarNode(product) AS VarNode(product) )
      
    }
  group by ( VarNode(country) AS VarNode(country) )
} AS -subSelect-1 JOIN ON () DEPENDS ON ()
WITH {
  QueryType: SELECT
  SELECT ( VarNode(product) AS VarNode(product) ) ( com.bigdata.rdf.sparql.ast.FunctionNode(FunctionNode(com.bigdata.rdf.internal.constraints.FuncBOp(com.bigdata.rdf.internal.constraints.StrBOp(price)[ com.bigdata.rdf.internal.constraints.IVValueExpression.namespace=BSBM_284826.lex, com.bigdata.rdf.internal.constraints.IVValueExpression.timestamp=1333046331134])[ com.bigdata.rdf.internal.constraints.IVValueExpression.namespace=BSBM_284826.lex, com.bigdata.rdf.internal.constraints.IVValueExpression.timestamp=1333046331134, com.bigdata.rdf.internal.constraints.FuncBOp.function=http://www.w3.org/2001/XMLSchema#float]))[ com.bigdata.rdf.sparql.ast.FunctionNode.functionURI=http://www.w3.org/2006/sparql-functions#average, valueExpr=com.bigdata.bop.rdf.aggregate.AVERAGE(com.bigdata.rdf.internal.constraints.FuncBOp(com.bigdata.rdf.internal.constraints.StrBOp(price)[ com.bigdata.rdf.internal.constraints.IVValueExpression.namespace=BSBM_284826.lex, com.bigdata.rdf.internal.constraints.IVValueExpression.timestamp=1333046331134])[ com.bigdata.rdf.internal.constraints.IVValueExpression.namespace=BSBM_284826.lex, com.bigdata.rdf.internal.constraints.IVValueExpression.timestamp=1333046331134, com.bigdata.rdf.internal.constraints.FuncBOp.function=http://www.w3.org/2001/XMLSchema#float])] AS VarNode(avgPrice) )
    JoinGroupNode {
      StatementPatternNode(VarNode(product), ConstantNode(Vocab(14)[http://www.w3.org/1999/02/22-rdf-syntax-ns#type]), ConstantNode(TermId(69190U)[http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/ProductType4]), DEFAULT_CONTEXTS)
        com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.estimatedCardinality=41886
        com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.originalIndex=POS
      StatementPatternNode(VarNode(offer), ConstantNode(TermId(1935477U)[http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/product]), VarNode(product), DEFAULT_CONTEXTS)
        com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.estimatedCardinality=5696520
        com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.originalIndex=POS
      StatementPatternNode(VarNode(offer), ConstantNode(TermId(1935476U)[http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/price]), VarNode(price), DEFAULT_CONTEXTS)
        com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.estimatedCardinality=5696520
        com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.originalIndex=POS
    }
  group by ( VarNode(product) AS VarNode(product) )
} AS -subSelect-2 JOIN ON () DEPENDS ON ()
WITH {
  QueryType: SELECT
  SELECT ( VarNode(country) AS VarNode(country) ) ( VarNode(product) AS VarNode(product) ) ( com.bigdata.rdf.sparql.ast.FunctionNode(VarNode(review))[ com.bigdata.rdf.sparql.ast.FunctionNode.functionURI=http://www.w3.org/2006/sparql-functions#count, valueExpr=com.bigdata.bop.rdf.aggregate.COUNT(review)] AS VarNode(nrOfReviews) )
    JoinGroupNode {
      StatementPatternNode(VarNode(product), ConstantNode(Vocab(14)[http://www.w3.org/1999/02/22-rdf-syntax-ns#type]), ConstantNode(TermId(69190U)[http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/ProductType4]), DEFAULT_CONTEXTS)
        com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.estimatedCardinality=41886
        com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.originalIndex=POS
      StatementPatternNode(VarNode(review), ConstantNode(Vocab(107)[http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/reviewFor]), VarNode(product), DEFAULT_CONTEXTS)
        com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.estimatedCardinality=2848260
        com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.originalIndex=POS
      StatementPatternNode(VarNode(review), ConstantNode(TermId(13188701U)[http://purl.org/stuff/rev#reviewer]), VarNode(reviewer), DEFAULT_CONTEXTS)
        com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.estimatedCardinality=2848260
        com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.originalIndex=POS
      StatementPatternNode(VarNode(reviewer), ConstantNode(TermId(69857U)[http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/country]), VarNode(country), DEFAULT_CONTEXTS)
        com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.estimatedCardinality=154607
        com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.originalIndex=POS
    }
  group by ( VarNode(country) AS VarNode(country) ) ( VarNode(product) AS VarNode(product) )
} AS -subSelect-3 JOIN ON (VarNode(country),VarNode(product)) DEPENDS ON ()
QueryType: SELECT
includeInferred=true
SELECT ( VarNode(country) AS VarNode(country) ) ( VarNode(product) AS VarNode(product) ) ( VarNode(nrOfReviews) AS VarNode(nrOfReviews) ) ( VarNode(avgPrice) AS VarNode(avgPrice) )
  JoinGroupNode {
    INCLUDE -subSelect-1 JOIN ON ()
    INCLUDE -subSelect-2 JOIN ON ()
    INCLUDE -subSelect-3 JOIN ON (VarNode(country),VarNode(product))
    FILTER( com.bigdata.rdf.sparql.ast.FunctionNode(VarNode(nrOfReviews),VarNode(maxReviews))[ com.bigdata.rdf.sparql.ast.FunctionNode.functionURI=http://www.w3.org/2005/xpath-functions#equal-to, valueExpr=com.bigdata.rdf.internal.constraints.CompareBOp(nrOfReviews,maxReviews)[ com.bigdata.rdf.internal.constraints.CompareBOp.op=EQ]] )
  }
order by com.bigdata.rdf.sparql.ast.OrderByExpr(VarNode(nrOfReviews))[ ascending=false] com.bigdata.rdf.sparql.ast.OrderByExpr(VarNode(country))[ ascending=true] com.bigdata.rdf.sparql.ast.OrderByExpr(VarNode(product))[ ascending=true]

Query Plan

com.bigdata.bop.solutions.ProjectionOp[51](MemorySortOp[49])[ com.bigdata.bop.BOp.bopId=51, com.bigdata.bop.BOp.evaluationContext=CONTROLLER, com.bigdata.bop.PipelineOp.sharedState=true, com.bigdata.bop.join.JoinAnnotations.select=[country, product, nrOfReviews, avgPrice], com.bigdata.bop.engine.QueryEngine.queryId=30c8afa5-ed20-49fb-bed5-95da4576e244]
  com.bigdata.bop.solutions.MemorySortOp[49](ChunkedMaterializationOp[50])[ com.bigdata.bop.BOp.bopId=49, com.bigdata.bop.solutions.SortOp.sortOrder=[DESC(nrOfReviews), ASC(country), ASC(product)], com.bigdata.bop.solutions.SortOp.valueComparator=com.bigdata.bop.solutions.IVComparator@46ac97cc, com.bigdata.bop.BOp.evaluationContext=CONTROLLER, com.bigdata.bop.PipelineOp.pipelined=true, com.bigdata.bop.PipelineOp.maxParallel=1, com.bigdata.bop.PipelineOp.lastPass=true, analytic=true, queryId=30c8afa5-ed20-49fb-bed5-95da4576e244]
    com.bigdata.bop.rdf.join.ChunkedMaterializationOp[50](ConditionalRoutingOp[46])[ com.bigdata.bop.rdf.join.ChunkedMaterializationOp.vars=[nrOfReviews, country, product], com.bigdata.bop.IPredicate.relationName=[BSBM_284826.lex], com.bigdata.bop.IPredicate.timestamp=1333046331134, com.bigdata.bop.PipelineOp.sharedState=true, com.bigdata.bop.BOp.bopId=50]
      com.bigdata.bop.bset.ConditionalRoutingOp[46](ChunkedMaterializationOp[48])[ com.bigdata.bop.BOp.bopId=46, com.bigdata.bop.bset.ConditionalRoutingOp.condition=com.bigdata.rdf.internal.constraints.SPARQLConstraint(com.bigdata.rdf.internal.constraints.CompareBOp(nrOfReviews,maxReviews)[ com.bigdata.rdf.internal.constraints.CompareBOp.op=EQ]), analytic=true, queryId=30c8afa5-ed20-49fb-bed5-95da4576e244]
        com.bigdata.bop.rdf.join.ChunkedMaterializationOp[48](ConditionalRoutingOp[47])[ com.bigdata.bop.rdf.join.ChunkedMaterializationOp.vars=[nrOfReviews, maxReviews], com.bigdata.bop.IPredicate.relationName=[BSBM_284826.lex], com.bigdata.bop.IPredicate.timestamp=1333046331134, com.bigdata.bop.PipelineOp.sharedState=true, com.bigdata.bop.BOp.bopId=48]
          com.bigdata.bop.bset.ConditionalRoutingOp[47](HTreeMergeJoin[45])[ com.bigdata.bop.BOp.bopId=47, com.bigdata.bop.bset.ConditionalRoutingOp.condition=com.bigdata.rdf.internal.constraints.SPARQLConstraint(com.bigdata.rdf.internal.constraints.NeedsMaterializationBOp(com.bigdata.rdf.internal.constraints.CompareBOp(nrOfReviews,maxReviews)[ com.bigdata.rdf.internal.constraints.CompareBOp.op=EQ])), com.bigdata.bop.PipelineOp.altSinkRef=46, analytic=true, queryId=30c8afa5-ed20-49fb-bed5-95da4576e244]
            com.bigdata.bop.join.HTreeMergeJoin[45](HTreeHashIndexOp[44])[ com.bigdata.bop.BOp.bopId=45, com.bigdata.bop.BOp.evaluationContext=CONTROLLER, com.bigdata.bop.PipelineOp.maxParallel=1, com.bigdata.bop.PipelineOp.lastPass=true, com.bigdata.bop.PipelineOp.sharedState=true, namedSetRef=[NamedSolutionSetRef{queryId=30c8afa5-ed20-49fb-bed5-95da4576e244,namedSet=-subSelect-1,joinVars=[country, product]}, NamedSolutionSetRef{queryId=30c8afa5-ed20-49fb-bed5-95da4576e244,namedSet=-subSelect-2,joinVars=[country, product]}, NamedSolutionSetRef{queryId=30c8afa5-ed20-49fb-bed5-95da4576e244,namedSet=-subSelect-3,joinVars=[country, product]}], com.bigdata.bop.join.JoinAnnotations.constraints=[], class com.bigdata.bop.join.HTreeSolutionSetHashJoinOp.release=false]
              com.bigdata.bop.join.HTreeHashIndexOp[44](HTreeSolutionSetHashJoinOp[43])[ com.bigdata.bop.BOp.bopId=44, com.bigdata.bop.BOp.evaluationContext=CONTROLLER, com.bigdata.bop.PipelineOp.maxParallel=1, com.bigdata.bop.PipelineOp.lastPass=true, com.bigdata.bop.PipelineOp.sharedState=true, com.bigdata.bop.IPredicate.relationName=[BSBM_284826.lex], com.bigdata.bop.join.JoinAnnotations.joinType=Normal, com.bigdata.bop.join.HashJoinAnnotations.joinVars=[country, product], namedSetRef=NamedSolutionSetRef{queryId=30c8afa5-ed20-49fb-bed5-95da4576e244,namedSet=-subSelect-1,joinVars=[country, product]}]
                com.bigdata.bop.join.HTreeSolutionSetHashJoinOp[43](HTreeNamedSubqueryOp[42])[ com.bigdata.bop.BOp.bopId=43, com.bigdata.bop.BOp.evaluationContext=CONTROLLER, com.bigdata.bop.PipelineOp.sharedState=true, namedSetRef=NamedSolutionSetRef{queryId=30c8afa5-ed20-49fb-bed5-95da4576e244,namedSet=-subSelect-1,joinVars=[]}, com.bigdata.bop.join.JoinAnnotations.constraints=null, class com.bigdata.bop.join.HTreeSolutionSetHashJoinOp.release=false]
                  com.bigdata.bop.controller.HTreeNamedSubqueryOp[42](HTreeNamedSubqueryOp[31])[ com.bigdata.bop.BOp.bopId=42, com.bigdata.bop.BOp.evaluationContext=CONTROLLER, com.bigdata.bop.PipelineOp.maxParallel=1, com.bigdata.bop.PipelineOp.pipelined=false, com.bigdata.bop.PipelineOp.maxMemory=9223372036854775807, com.bigdata.bop.PipelineOp.sharedState=true, com.bigdata.bop.IPredicate.relationName=[BSBM_284826.lex], com.bigdata.bop.controller.SubqueryAnnotations.subquery=com.bigdata.bop.solutions.ProjectionOp[41](PipelinedAggregationOp[40])[ com.bigdata.bop.BOp.bopId=41, com.bigdata.bop.BOp.evaluationContext=CONTROLLER, com.bigdata.bop.PipelineOp.sharedState=true, com.bigdata.bop.join.JoinAnnotations.select=[country, product, nrOfReviews]], com.bigdata.bop.join.HashJoinAnnotations.joinVars=[country, product], namedSetRef=NamedSolutionSetRef{queryId=30c8afa5-ed20-49fb-bed5-95da4576e244,namedSet=-subSelect-3,joinVars=[country, product]}]
                  @com.bigdata.bop.controller.SubqueryAnnotations.subquery:
                    com.bigdata.bop.solutions.ProjectionOp[41](PipelinedAggregationOp[40])[ com.bigdata.bop.BOp.bopId=41, com.bigdata.bop.BOp.evaluationContext=CONTROLLER, com.bigdata.bop.PipelineOp.sharedState=true, com.bigdata.bop.join.JoinAnnotations.select=[country, product, nrOfReviews]]
                      com.bigdata.bop.solutions.PipelinedAggregationOp[40](PipelineJoin[39])[ com.bigdata.bop.BOp.bopId=40, com.bigdata.bop.BOp.evaluationContext=CONTROLLER, com.bigdata.bop.PipelineOp.pipelined=true, com.bigdata.bop.PipelineOp.maxParallel=1, com.bigdata.bop.PipelineOp.sharedState=true, com.bigdata.bop.solutions.GroupByOp.groupByState=com.bigdata.bop.solutions.GroupByState@5b14a306, com.bigdata.bop.solutions.GroupByOp.groupByRewrite=GroupByRewriter{aggExpr={com.bigdata.bop.rdf.aggregate.COUNT(review)=dc2976e2-bc01-428f-952d-f733a3f54450},select2=[com.bigdata.bop.Bind(country,country), com.bigdata.bop.Bind(product,product), com.bigdata.bop.Bind(nrOfReviews,dc2976e2-bc01-428f-952d-f733a3f54450)],having2=null}, com.bigdata.bop.PipelineOp.lastPass=true, analytic=true, queryId=30c8afa5-ed20-49fb-bed5-95da4576e244]
                        com.bigdata.bop.join.PipelineJoin[39](PipelineJoin[37])[ com.bigdata.bop.BOp.bopId=39, com.bigdata.bop.join.JoinAnnotations.constraints=null, com.bigdata.bop.BOp.evaluationContext=ANY, com.bigdata.bop.join.AccessPathJoinAnnotations.predicate=com.bigdata.rdf.spo.SPOPredicate[38](reviewer=null, TermId(69857U)[http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/country], country=null)[ com.bigdata.bop.IPredicate.relationName=[BSBM_284826.spo], com.bigdata.bop.IPredicate.timestamp=1333046331134, com.bigdata.bop.BOp.bopId=38, com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.estimatedCardinality=154607, com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.originalIndex=POS, com.bigdata.bop.IPredicate.flags=[KEYS,VALS,READONLY,PARALLEL]]]
                          com.bigdata.bop.join.PipelineJoin[37](PipelineJoin[35])[ com.bigdata.bop.BOp.bopId=37, com.bigdata.bop.join.JoinAnnotations.constraints=null, com.bigdata.bop.BOp.evaluationContext=ANY, com.bigdata.bop.join.AccessPathJoinAnnotations.predicate=com.bigdata.rdf.spo.SPOPredicate[36](review=null, TermId(13188701U)[http://purl.org/stuff/rev#reviewer], reviewer=null)[ com.bigdata.bop.IPredicate.relationName=[BSBM_284826.spo], com.bigdata.bop.IPredicate.timestamp=1333046331134, com.bigdata.bop.BOp.bopId=36, com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.estimatedCardinality=2848260, com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.originalIndex=POS, com.bigdata.bop.IPredicate.flags=[KEYS,VALS,READONLY,PARALLEL]]]
                            com.bigdata.bop.join.PipelineJoin[35](PipelineJoin[33])[ com.bigdata.bop.BOp.bopId=35, com.bigdata.bop.join.JoinAnnotations.constraints=null, com.bigdata.bop.BOp.evaluationContext=ANY, com.bigdata.bop.join.AccessPathJoinAnnotations.predicate=com.bigdata.rdf.spo.SPOPredicate[34](review=null, Vocab(107)[http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/reviewFor], product=null)[ com.bigdata.bop.IPredicate.relationName=[BSBM_284826.spo], com.bigdata.bop.IPredicate.timestamp=1333046331134, com.bigdata.bop.BOp.bopId=34, com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.estimatedCardinality=2848260, com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.originalIndex=POS, com.bigdata.bop.IPredicate.flags=[KEYS,VALS,READONLY,PARALLEL]]]
                              com.bigdata.bop.join.PipelineJoin[33]()[ com.bigdata.bop.BOp.bopId=33, com.bigdata.bop.join.JoinAnnotations.constraints=null, com.bigdata.bop.BOp.evaluationContext=ANY, com.bigdata.bop.join.AccessPathJoinAnnotations.predicate=com.bigdata.rdf.spo.SPOPredicate[32](product=null, Vocab(14)[http://www.w3.org/1999/02/22-rdf-syntax-ns#type], TermId(69190U)[http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/ProductType4])[ com.bigdata.bop.IPredicate.relationName=[BSBM_284826.spo], com.bigdata.bop.IPredicate.timestamp=1333046331134, com.bigdata.bop.BOp.bopId=32, com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.estimatedCardinality=41886, com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.originalIndex=POS, com.bigdata.bop.IPredicate.flags=[KEYS,VALS,READONLY,PARALLEL]]]
                    com.bigdata.bop.controller.HTreeNamedSubqueryOp[31](HTreeNamedSubqueryOp[21])[ com.bigdata.bop.BOp.bopId=31, com.bigdata.bop.BOp.evaluationContext=CONTROLLER, com.bigdata.bop.PipelineOp.maxParallel=1, com.bigdata.bop.PipelineOp.pipelined=false, com.bigdata.bop.PipelineOp.maxMemory=9223372036854775807, com.bigdata.bop.PipelineOp.sharedState=true, com.bigdata.bop.IPredicate.relationName=[BSBM_284826.lex], com.bigdata.bop.controller.SubqueryAnnotations.subquery=com.bigdata.bop.solutions.ProjectionOp[30](PipelinedAggregationOp[28])[ com.bigdata.bop.BOp.bopId=30, com.bigdata.bop.BOp.evaluationContext=CONTROLLER, com.bigdata.bop.PipelineOp.sharedState=true, com.bigdata.bop.join.JoinAnnotations.select=[product, avgPrice]], com.bigdata.bop.join.HashJoinAnnotations.joinVars=[], namedSetRef=NamedSolutionSetRef{queryId=30c8afa5-ed20-49fb-bed5-95da4576e244,namedSet=-subSelect-2,joinVars=[]}]
                    @com.bigdata.bop.controller.SubqueryAnnotations.subquery:
                      com.bigdata.bop.solutions.ProjectionOp[30](PipelinedAggregationOp[28])[ com.bigdata.bop.BOp.bopId=30, com.bigdata.bop.BOp.evaluationContext=CONTROLLER, com.bigdata.bop.PipelineOp.sharedState=true, com.bigdata.bop.join.JoinAnnotations.select=[product, avgPrice]]
                        com.bigdata.bop.solutions.PipelinedAggregationOp[28](ChunkedMaterializationOp[29])[ com.bigdata.bop.BOp.bopId=28, com.bigdata.bop.BOp.evaluationContext=CONTROLLER, com.bigdata.bop.PipelineOp.pipelined=true, com.bigdata.bop.PipelineOp.maxParallel=1, com.bigdata.bop.PipelineOp.sharedState=true, com.bigdata.bop.solutions.GroupByOp.groupByState=com.bigdata.bop.solutions.GroupByState@202264da, com.bigdata.bop.solutions.GroupByOp.groupByRewrite=GroupByRewriter{aggExpr={com.bigdata.bop.rdf.aggregate.AVERAGE(com.bigdata.rdf.internal.constraints.FuncBOp(com.bigdata.rdf.internal.constraints.StrBOp(price)[ com.bigdata.rdf.internal.constraints.IVValueExpression.namespace=BSBM_284826.lex, com.bigdata.rdf.internal.constraints.IVValueExpression.timestamp=1333046331134])[ com.bigdata.rdf.internal.constraints.IVValueExpression.namespace=BSBM_284826.lex, com.bigdata.rdf.internal.constraints.IVValueExpression.timestamp=1333046331134, com.bigdata.rdf.internal.constraints.FuncBOp.function=http://www.w3.org/2001/XMLSchema#float])=2f2a05ea-877d-4ef9-8b91-2e2f47aaf034},select2=[com.bigdata.bop.Bind(product,product), com.bigdata.bop.Bind(avgPrice,2f2a05ea-877d-4ef9-8b91-2e2f47aaf034)],having2=null}, com.bigdata.bop.PipelineOp.lastPass=true, analytic=true, queryId=30c8afa5-ed20-49fb-bed5-95da4576e244]
                          com.bigdata.bop.rdf.join.ChunkedMaterializationOp[29](PipelineJoin[27])[ com.bigdata.bop.rdf.join.ChunkedMaterializationOp.vars=[price], com.bigdata.bop.IPredicate.relationName=[BSBM_284826.lex], com.bigdata.bop.IPredicate.timestamp=1333046331134, com.bigdata.bop.PipelineOp.sharedState=true, com.bigdata.bop.BOp.bopId=29]
                            com.bigdata.bop.join.PipelineJoin[27](PipelineJoin[25])[ com.bigdata.bop.BOp.bopId=27, com.bigdata.bop.join.JoinAnnotations.constraints=null, com.bigdata.bop.BOp.evaluationContext=ANY, com.bigdata.bop.join.AccessPathJoinAnnotations.predicate=com.bigdata.rdf.spo.SPOPredicate[26](offer=null, TermId(1935476U)[http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/price], price=null)[ com.bigdata.bop.IPredicate.relationName=[BSBM_284826.spo], com.bigdata.bop.IPredicate.timestamp=1333046331134, com.bigdata.bop.BOp.bopId=26, com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.estimatedCardinality=5696520, com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.originalIndex=POS, com.bigdata.bop.IPredicate.flags=[KEYS,VALS,READONLY,PARALLEL]]]
                              com.bigdata.bop.join.PipelineJoin[25](PipelineJoin[23])[ com.bigdata.bop.BOp.bopId=25, com.bigdata.bop.join.JoinAnnotations.constraints=null, com.bigdata.bop.BOp.evaluationContext=ANY, com.bigdata.bop.join.AccessPathJoinAnnotations.predicate=com.bigdata.rdf.spo.SPOPredicate[24](offer=null, TermId(1935477U)[http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/product], product=null)[ com.bigdata.bop.IPredicate.relationName=[BSBM_284826.spo], com.bigdata.bop.IPredicate.timestamp=1333046331134, com.bigdata.bop.BOp.bopId=24, com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.estimatedCardinality=5696520, com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.originalIndex=POS, com.bigdata.bop.IPredicate.flags=[KEYS,VALS,READONLY,PARALLEL]]]
                                com.bigdata.bop.join.PipelineJoin[23]()[ com.bigdata.bop.BOp.bopId=23, com.bigdata.bop.join.JoinAnnotations.constraints=null, com.bigdata.bop.BOp.evaluationContext=ANY, com.bigdata.bop.join.AccessPathJoinAnnotations.predicate=com.bigdata.rdf.spo.SPOPredicate[22](product=null, Vocab(14)[http://www.w3.org/1999/02/22-rdf-syntax-ns#type], TermId(69190U)[http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/ProductType4])[ com.bigdata.bop.IPredicate.relationName=[BSBM_284826.spo], com.bigdata.bop.IPredicate.timestamp=1333046331134, com.bigdata.bop.BOp.bopId=22, com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.estimatedCardinality=41886, com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.originalIndex=POS, com.bigdata.bop.IPredicate.flags=[KEYS,VALS,READONLY,PARALLEL]]]
                      com.bigdata.bop.controller.HTreeNamedSubqueryOp[21]()[ com.bigdata.bop.BOp.bopId=21, com.bigdata.bop.BOp.evaluationContext=CONTROLLER, com.bigdata.bop.PipelineOp.maxParallel=1, com.bigdata.bop.PipelineOp.pipelined=false, com.bigdata.bop.PipelineOp.maxMemory=9223372036854775807, com.bigdata.bop.PipelineOp.sharedState=true, com.bigdata.bop.IPredicate.relationName=[BSBM_284826.lex], com.bigdata.bop.controller.SubqueryAnnotations.subquery=com.bigdata.bop.solutions.ProjectionOp[20](PipelinedAggregationOp[18])[ com.bigdata.bop.BOp.bopId=20, com.bigdata.bop.BOp.evaluationContext=CONTROLLER, com.bigdata.bop.PipelineOp.sharedState=true, com.bigdata.bop.join.JoinAnnotations.select=[country, maxReviews]], com.bigdata.bop.join.HashJoinAnnotations.joinVars=[], namedSetRef=NamedSolutionSetRef{queryId=30c8afa5-ed20-49fb-bed5-95da4576e244,namedSet=-subSelect-1,joinVars=[]}]
                      @com.bigdata.bop.controller.SubqueryAnnotations.subquery:
                        com.bigdata.bop.solutions.ProjectionOp[20](PipelinedAggregationOp[18])[ com.bigdata.bop.BOp.bopId=20, com.bigdata.bop.BOp.evaluationContext=CONTROLLER, com.bigdata.bop.PipelineOp.sharedState=true, com.bigdata.bop.join.JoinAnnotations.select=[country, maxReviews]]
                          com.bigdata.bop.solutions.PipelinedAggregationOp[18](ChunkedMaterializationOp[19])[ com.bigdata.bop.BOp.bopId=18, com.bigdata.bop.BOp.evaluationContext=CONTROLLER, com.bigdata.bop.PipelineOp.pipelined=true, com.bigdata.bop.PipelineOp.maxParallel=1, com.bigdata.bop.PipelineOp.sharedState=true, com.bigdata.bop.solutions.GroupByOp.groupByState=com.bigdata.bop.solutions.GroupByState@7db06a21, com.bigdata.bop.solutions.GroupByOp.groupByRewrite=GroupByRewriter{aggExpr={com.bigdata.bop.rdf.aggregate.MAX(nrOfReviews)=a0aea7ea-9b4f-4adb-bdd9-30bf3b724c8c},select2=[com.bigdata.bop.Bind(country,country), com.bigdata.bop.Bind(maxReviews,a0aea7ea-9b4f-4adb-bdd9-30bf3b724c8c)],having2=null}, com.bigdata.bop.PipelineOp.lastPass=true, analytic=true, queryId=30c8afa5-ed20-49fb-bed5-95da4576e244]
                            com.bigdata.bop.rdf.join.ChunkedMaterializationOp[19](HTreeSolutionSetHashJoinOp[17])[ com.bigdata.bop.rdf.join.ChunkedMaterializationOp.vars=[nrOfReviews], com.bigdata.bop.IPredicate.relationName=[BSBM_284826.lex], com.bigdata.bop.IPredicate.timestamp=1333046331134, com.bigdata.bop.PipelineOp.sharedState=true, com.bigdata.bop.BOp.bopId=19]
                              com.bigdata.bop.join.HTreeSolutionSetHashJoinOp[17](ProjectionOp[16])[ com.bigdata.bop.BOp.bopId=17, com.bigdata.bop.BOp.evaluationContext=CONTROLLER, com.bigdata.bop.PipelineOp.maxParallel=1, com.bigdata.bop.PipelineOp.sharedState=true, class com.bigdata.bop.join.HTreeSolutionSetHashJoinOp.release=false, com.bigdata.bop.PipelineOp.lastPass=false, namedSetRef=NamedSolutionSetRef{queryId=30c8afa5-ed20-49fb-bed5-95da4576e244,namedSet=--set-4,joinVars=[]}]
                                com.bigdata.bop.solutions.ProjectionOp[16](PipelinedAggregationOp[15])[ com.bigdata.bop.BOp.bopId=16, com.bigdata.bop.BOp.evaluationContext=CONTROLLER, com.bigdata.bop.PipelineOp.sharedState=true, com.bigdata.bop.join.JoinAnnotations.select=[country, product, nrOfReviews]]
                                  com.bigdata.bop.solutions.PipelinedAggregationOp[15](PipelineJoin[14])[ com.bigdata.bop.BOp.bopId=15, com.bigdata.bop.BOp.evaluationContext=CONTROLLER, com.bigdata.bop.PipelineOp.pipelined=true, com.bigdata.bop.PipelineOp.maxParallel=1, com.bigdata.bop.PipelineOp.sharedState=true, com.bigdata.bop.solutions.GroupByOp.groupByState=com.bigdata.bop.solutions.GroupByState@233dcd27, com.bigdata.bop.solutions.GroupByOp.groupByRewrite=GroupByRewriter{aggExpr={com.bigdata.bop.rdf.aggregate.COUNT(review)=93a5f431-e85d-4883-9082-3a0f71bc8423},select2=[com.bigdata.bop.Bind(country,country), com.bigdata.bop.Bind(product,product), com.bigdata.bop.Bind(nrOfReviews,93a5f431-e85d-4883-9082-3a0f71bc8423)],having2=null}, com.bigdata.bop.PipelineOp.lastPass=true, analytic=true, queryId=30c8afa5-ed20-49fb-bed5-95da4576e244]
                                    com.bigdata.bop.join.PipelineJoin[14](PipelineJoin[12])[ com.bigdata.bop.BOp.bopId=14, com.bigdata.bop.join.JoinAnnotations.constraints=null, com.bigdata.bop.BOp.evaluationContext=ANY, com.bigdata.bop.join.AccessPathJoinAnnotations.predicate=com.bigdata.rdf.spo.SPOPredicate[13](reviewer=null, TermId(69857U)[http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/country], country=null)[ com.bigdata.bop.IPredicate.relationName=[BSBM_284826.spo], com.bigdata.bop.IPredicate.timestamp=1333046331134, com.bigdata.bop.BOp.bopId=13, com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.estimatedCardinality=154607, com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.originalIndex=POS, com.bigdata.bop.IPredicate.flags=[KEYS,VALS,READONLY,PARALLEL]]]
                                      com.bigdata.bop.join.PipelineJoin[12](PipelineJoin[10])[ com.bigdata.bop.BOp.bopId=12, com.bigdata.bop.join.JoinAnnotations.constraints=null, com.bigdata.bop.BOp.evaluationContext=ANY, com.bigdata.bop.join.AccessPathJoinAnnotations.predicate=com.bigdata.rdf.spo.SPOPredicate[11](review=null, TermId(13188701U)[http://purl.org/stuff/rev#reviewer], reviewer=null)[ com.bigdata.bop.IPredicate.relationName=[BSBM_284826.spo], com.bigdata.bop.IPredicate.timestamp=1333046331134, com.bigdata.bop.BOp.bopId=11, com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.estimatedCardinality=2848260, com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.originalIndex=POS, com.bigdata.bop.IPredicate.flags=[KEYS,VALS,READONLY,PARALLEL]]]
                                        com.bigdata.bop.join.PipelineJoin[10](PipelineJoin[8])[ com.bigdata.bop.BOp.bopId=10, com.bigdata.bop.join.JoinAnnotations.constraints=null, com.bigdata.bop.BOp.evaluationContext=ANY, com.bigdata.bop.join.AccessPathJoinAnnotations.predicate=com.bigdata.rdf.spo.SPOPredicate[9](review=null, Vocab(107)[http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/reviewFor], product=null)[ com.bigdata.bop.IPredicate.relationName=[BSBM_284826.spo], com.bigdata.bop.IPredicate.timestamp=1333046331134, com.bigdata.bop.BOp.bopId=9, com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.estimatedCardinality=2848260, com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.originalIndex=POS, com.bigdata.bop.IPredicate.flags=[KEYS,VALS,READONLY,PARALLEL]]]
                                          com.bigdata.bop.join.PipelineJoin[8](ProjectionOp[6])[ com.bigdata.bop.BOp.bopId=8, com.bigdata.bop.join.JoinAnnotations.constraints=null, com.bigdata.bop.BOp.evaluationContext=ANY, com.bigdata.bop.join.AccessPathJoinAnnotations.predicate=com.bigdata.rdf.spo.SPOPredicate[7](product=null, Vocab(14)[http://www.w3.org/1999/02/22-rdf-syntax-ns#type], TermId(69190U)[http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/ProductType4])[ com.bigdata.bop.IPredicate.relationName=[BSBM_284826.spo], com.bigdata.bop.IPredicate.timestamp=1333046331134, com.bigdata.bop.BOp.bopId=7, com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.estimatedCardinality=41886, com.bigdata.rdf.sparql.ast.eval.AST2BOpBase.originalIndex=POS, com.bigdata.bop.IPredicate.flags=[KEYS,VALS,READONLY,PARALLEL]]]
                                            com.bigdata.bop.solutions.ProjectionOp[6](HTreeHashIndexOp[5])[ com.bigdata.bop.BOp.bopId=6, com.bigdata.bop.BOp.evaluationContext=CONTROLLER, com.bigdata.bop.PipelineOp.sharedState=true, com.bigdata.bop.join.JoinAnnotations.select=[country, product, nrOfReviews]]
                                              com.bigdata.bop.join.HTreeHashIndexOp[5]()[ com.bigdata.bop.BOp.bopId=5, com.bigdata.bop.BOp.evaluationContext=CONTROLLER, com.bigdata.bop.PipelineOp.maxParallel=1, com.bigdata.bop.PipelineOp.lastPass=true, com.bigdata.bop.PipelineOp.sharedState=true, com.bigdata.bop.IPredicate.relationName=[BSBM_284826.lex], com.bigdata.bop.join.JoinAnnotations.joinType=Normal, com.bigdata.bop.join.HashJoinAnnotations.joinVars=[], com.bigdata.bop.join.JoinAnnotations.constraints=null, namedSetRef=NamedSolutionSetRef{queryId=30c8afa5-ed20-49fb-bed5-95da4576e244,namedSet=--set-4,joinVars=[]}]

org.openrdf.query.QueryEvaluationException: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.RuntimeException: Not found: NamedSolutionSetRef{queryId=30c8afa5-ed20-49fb-bed5-95da4576e244,namedSet=-subSelect-2,joinVars=[country, product]}
	at com.bigdata.rdf.sail.Bigdata2Sesame2BindingSetIterator.hasNext(Bigdata2Sesame2BindingSetIterator.java:119)
	at org.openrdf.query.impl.TupleQueryResultImpl.hasNext(TupleQueryResultImpl.java:90)
	at org.openrdf.query.QueryResultUtil.report(QueryResultUtil.java:52)
	at org.openrdf.repository.sail.SailTupleQuery.evaluate(SailTupleQuery.java:63)
	at com.bigdata.rdf.sail.webapp.BigdataRDFContext$TupleQueryTask.doQuery(BigdataRDFContext.java:917)
	at com.bigdata.rdf.sail.webapp.BigdataRDFContext$AbstractQueryTask.call(BigdataRDFContext.java:807)
	at com.bigdata.rdf.sail.webapp.BigdataRDFContext$AbstractQueryTask.call(BigdataRDFContext.java:328)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.RuntimeException: Not found: NamedSolutionSetRef{queryId=30c8afa5-ed20-49fb-bed5-95da4576e244,namedSet=-subSelect-2,joinVars=[country, product]}
	at com.bigdata.relation.accesspath.BlockingBuffer$BlockingIterator.checkFuture(BlockingBuffer.java:1481)
	at com.bigdata.relation.accesspath.BlockingBuffer$BlockingIterator._hasNext(BlockingBuffer.java:1658)
	at com.bigdata.relation.accesspath.BlockingBuffer$BlockingIterator.hasNext(BlockingBuffer.java:1521)
	at com.bigdata.striterator.AbstractChunkedResolverator._hasNext(AbstractChunkedResolverator.java:352)
	at com.bigdata.striterator.AbstractChunkedResolverator.hasNext(AbstractChunkedResolverator.java:328)
	at com.bigdata.rdf.sail.Bigdata2Sesame2BindingSetIterator.hasNext(Bigdata2Sesame2BindingSetIterator.java:100)
	... 11 more
Caused by: java.util.concurrent.ExecutionException: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.RuntimeException: Not found: NamedSolutionSetRef{queryId=30c8afa5-ed20-49fb-bed5-95da4576e244,namedSet=-subSelect-2,joinVars=[country, product]}
	at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222)
	at java.util.concurrent.FutureTask.get(FutureTask.java:83)
	at com.bigdata.relation.accesspath.BlockingBuffer$BlockingIterator.checkFuture(BlockingBuffer.java:1434)
	... 16 more
Caused by: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.RuntimeException: Not found: NamedSolutionSetRef{queryId=30c8afa5-ed20-49fb-bed5-95da4576e244,namedSet=-subSelect-2,joinVars=[country, product]}
	at com.bigdata.rdf.sail.RunningQueryCloseableIterator.checkFuture(RunningQueryCloseableIterator.java:58)
	at com.bigdata.rdf.sail.RunningQueryCloseableIterator.close(RunningQueryCloseableIterator.java:72)
	at com.bigdata.rdf.sail.RunningQueryCloseableIterator.hasNext(RunningQueryCloseableIterator.java:81)
	at com.bigdata.striterator.ChunkedWrappedIterator.hasNext(ChunkedWrappedIterator.java:193)
	at com.bigdata.striterator.AbstractChunkedResolverator$ChunkConsumerTask.call(AbstractChunkedResolverator.java:218)
	at com.bigdata.striterator.AbstractChunkedResolverator$ChunkConsumerTask.call(AbstractChunkedResolverator.java:194)
	... 5 more
Caused by: java.util.concurrent.ExecutionException: java.lang.RuntimeException: Not found: NamedSolutionSetRef{queryId=30c8afa5-ed20-49fb-bed5-95da4576e244,namedSet=-subSelect-2,joinVars=[country, product]}
	at com.bigdata.util.concurrent.Haltable.get(Haltable.java:251)
	at com.bigdata.bop.engine.AbstractRunningQuery.get(AbstractRunningQuery.java:1401)
	at com.bigdata.bop.engine.AbstractRunningQuery.get(AbstractRunningQuery.java:100)
	at com.bigdata.rdf.sail.RunningQueryCloseableIterator.checkFuture(RunningQueryCloseableIterator.java:45)
	... 10 more
Caused by: java.lang.RuntimeException: Not found: NamedSolutionSetRef{queryId=30c8afa5-ed20-49fb-bed5-95da4576e244,namedSet=-subSelect-2,joinVars=[country, product]}
	at com.bigdata.bop.join.HTreeMergeJoin$ChunkTask.<init>(HTreeMergeJoin.java:233)
	at com.bigdata.bop.join.HTreeMergeJoin.eval(HTreeMergeJoin.java:152)
	at com.bigdata.bop.engine.ChunkedRunningQuery$ChunkTask.<init>(ChunkedRunningQuery.java:1203)
	at com.bigdata.bop.engine.ChunkedRunningQuery.scheduleNext(ChunkedRunningQuery.java:621)
	at com.bigdata.bop.engine.ChunkedRunningQuery.acceptChunk(ChunkedRunningQuery.java:290)
	at com.bigdata.bop.engine.AbstractRunningQuery.doLastPass(AbstractRunningQuery.java:939)
	at com.bigdata.bop.engine.AbstractRunningQuery.triggerOperatorsAwaitingLastPass(AbstractRunningQuery.java:870)
	at com.bigdata.bop.engine.AbstractRunningQuery.haltOp(AbstractRunningQuery.java:812)
	at com.bigdata.bop.engine.ChunkedRunningQuery.haltOp(ChunkedRunningQuery.java:341)
	at com.bigdata.bop.engine.ChunkedRunningQuery$SendHaltMessageTask.run(ChunkedRunningQuery.java:1702)
	... 3 more

Query Evaluation Statistics

solutions=0, chunks=0, subqueries=3, elapsed=55664ms.
queryId	beginTime	doneTime	deadline	elapsed	serviceId	cause	evalOrder	evalContext	controller	bopId	predId	bopSummary	predSummary	staticBestKeyOrder	overriddenKeyOrder	nvars	fastRangeCount	runState	sumMillis	opCount	numRunning	fanOut	queueShards	queueChunks	queueSolutions	chunksIn	unitsIn	unitsInPerChunk	chunksOut	unitsOut	unitsOutPerChunk	mutationCount	typeErrors	joinRatio	accessPathDups	accessPathCount	accessPathRangeCount	accessPathChunksIn	accessPathUnitsIn	solutions/ms	mutations/ms
30c8afa5-ed20-49fb-bed5-95da4576e244	Thursday, March 29, 2012 2:38:51 PM EDT	Thursday, March 29, 2012 2:39:46 PM EDT		55664	1e08ae0c-13af-4897-8912-d68421173285	Not found: NamedSolutionSetRef{queryId=30c8afa5-ed20-49fb-bed5-95da4576e244,namedSet=-subSelect-2,joinVars=[country, product]}	total			total		total						Running	55619	13	0	0				255	248894	976.0549019607843	4	13	3.25	0	0	5.223107025480727E-5	0	1	10	0	0	0	0
30c8afa5-ed20-49fb-bed5-95da4576e244	Thursday, March 29, 2012 2:38:51 PM EDT	Thursday, March 29, 2012 2:39:46 PM EDT		55664	1e08ae0c-13af-4897-8912-d68421173285	Not found: NamedSolutionSetRef{queryId=30c8afa5-ed20-49fb-bed5-95da4576e244,namedSet=-subSelect-2,joinVars=[country, product]}	0	CONTROLLER	false	21		HTreeNamedSubqueryOp[21]	HTreeHashJoinUtility{open=true,joinType=Normal,chunkSize=1000,joinVars=[],size=10,considered(left=1,right=10,joins=10),encoder=},namedSet=-subSelect-1					AllDone	22286	2	0	1				2	11	5.5	1	1	1.0	0	0	0.09090909090909091	0	0	0	0	0	0	0
30c8afa5-ed20-49fb-bed5-95da4576e244	Thursday, March 29, 2012 2:38:51 PM EDT	Thursday, March 29, 2012 2:39:46 PM EDT		55664	1e08ae0c-13af-4897-8912-d68421173285	Not found: NamedSolutionSetRef{queryId=30c8afa5-ed20-49fb-bed5-95da4576e244,namedSet=-subSelect-2,joinVars=[country, product]}	1	CONTROLLER	false	31		HTreeNamedSubqueryOp[31]	HTreeHashJoinUtility{open=true,joinType=Normal,chunkSize=1000,joinVars=[],size=41864,considered(left=0,right=0,joins=0),encoder=},namedSet=-subSelect-2					AllDone	17069	2	0	1				43	41865	973.6046511627907	1	1	1.0	0	0	2.388630120625821E-5	0	0	0	0	0	0	0
30c8afa5-ed20-49fb-bed5-95da4576e244	Thursday, March 29, 2012 2:38:51 PM EDT	Thursday, March 29, 2012 2:39:46 PM EDT		55664	1e08ae0c-13af-4897-8912-d68421173285	Not found: NamedSolutionSetRef{queryId=30c8afa5-ed20-49fb-bed5-95da4576e244,namedSet=-subSelect-2,joinVars=[country, product]}	2	CONTROLLER	false	42		HTreeNamedSubqueryOp[42]	HTreeHashJoinUtility{open=true,joinType=Normal,chunkSize=1000,joinVars=[country, product],size=207007,considered(left=0,right=0,joins=0),encoder=},namedSet=-subSelect-3					AllDone	16252	2	0	1				209	207008	990.4688995215311	1	1	1.0	0	0	4.830731179471325E-6	0	0	0	0	0	0	0
30c8afa5-ed20-49fb-bed5-95da4576e244	Thursday, March 29, 2012 2:38:51 PM EDT	Thursday, March 29, 2012 2:39:46 PM EDT		55664	1e08ae0c-13af-4897-8912-d68421173285	Not found: NamedSolutionSetRef{queryId=30c8afa5-ed20-49fb-bed5-95da4576e244,namedSet=-subSelect-2,joinVars=[country, product]}	3	CONTROLLER	false	43		HTreeSolutionSetHashJoinOp[43]	HTreeHashJoinUtility{open=true,joinType=Normal,chunkSize=1000,joinVars=[],size=10,considered(left=1,right=10,joins=10),encoder=},namedSet=-subSelect-1					AllDone	8	2	0	1				0	0	0.0	1	10	10.0	0	0	N/A	0	1	10	0	0	0	0
30c8afa5-ed20-49fb-bed5-95da4576e244	Thursday, March 29, 2012 2:38:51 PM EDT	Thursday, March 29, 2012 2:39:46 PM EDT		55664	1e08ae0c-13af-4897-8912-d68421173285	Not found: NamedSolutionSetRef{queryId=30c8afa5-ed20-49fb-bed5-95da4576e244,namedSet=-subSelect-2,joinVars=[country, product]}	4	CONTROLLER	false	44		HTreeHashIndexOp[44]	HTreeHashJoinUtility{open=true,joinType=Normal,chunkSize=1000,joinVars=[country, product],size=0,considered(left=0,right=0,joins=0),encoder=},namedSet=-subSelect-1					AllDone	4	2	0	1				1	10	10.0	0	0	0.0	0	0	0.0	0	0	0	0	0	0	0
30c8afa5-ed20-49fb-bed5-95da4576e244	Thursday, March 29, 2012 2:38:51 PM EDT	Thursday, March 29, 2012 2:39:46 PM EDT		55664	1e08ae0c-13af-4897-8912-d68421173285	Not found: NamedSolutionSetRef{queryId=30c8afa5-ed20-49fb-bed5-95da4576e244,namedSet=-subSelect-2,joinVars=[country, product]}	5	CONTROLLER	false	45		HTreeMergeJoin[45]	HTreeHashJoinUtility{open=true,joinType=Normal,chunkSize=1000,joinVars=[country, product],size=0,considered(left=0,right=0,joins=0),encoder=},NamedSolutionSetRef{queryId=30c8afa5-ed20-49fb-bed5-95da4576e244,namedSet=-subSelect-2,joinVars=[country, product]},HTreeHashJoinUtility{open=true,joinType=Normal,chunkSize=1000,joinVars=[country, product],size=207007,considered(left=0,right=0,joins=0),encoder=}					Running	0	2	0	1				0	0	0.0	0	0	0.0	0	0	N/A	0	0	0	0	0	0	0
30c8afa5-ed20-49fb-bed5-95da4576e244	Thursday, March 29, 2012 2:38:51 PM EDT	Thursday, March 29, 2012 2:39:46 PM EDT		55664	1e08ae0c-13af-4897-8912-d68421173285	Not found: NamedSolutionSetRef{queryId=30c8afa5-ed20-49fb-bed5-95da4576e244,namedSet=-subSelect-2,joinVars=[country, product]}	6	ANY	false	47		ConditionalRoutingOp[47]						Running	0	2	0	0				0	0	0.0	0	0	0.0	0	0	N/A	0	0	0	0	0	0	0
30c8afa5-ed20-49fb-bed5-95da4576e244	Thursday, March 29, 2012 2:38:51 PM EDT	Thursday, March 29, 2012 2:39:46 PM EDT		55664	1e08ae0c-13af-4897-8912-d68421173285	Not found: NamedSolutionSetRef{queryId=30c8afa5-ed20-49fb-bed5-95da4576e244,namedSet=-subSelect-2,joinVars=[country, product]}	7	ANY	false	48		ChunkedMaterializationOp[48]	[nrOfReviews, maxReviews]					Running	0	2	0	0				0	0	0.0	0	0	0.0	0	0	N/A	0	0	0	0	0	0	0
30c8afa5-ed20-49fb-bed5-95da4576e244	Thursday, March 29, 2012 2:38:51 PM EDT	Thursday, March 29, 2012 2:39:46 PM EDT		55664	1e08ae0c-13af-4897-8912-d68421173285	Not found: NamedSolutionSetRef{queryId=30c8afa5-ed20-49fb-bed5-95da4576e244,namedSet=-subSelect-2,joinVars=[country, product]}	8	ANY	false	46		ConditionalRoutingOp[46]						Running	0	2	0	0				0	0	0.0	0	0	0.0	0	0	N/A	0	0	0	0	0	0	0
30c8afa5-ed20-49fb-bed5-95da4576e244	Thursday, March 29, 2012 2:38:51 PM EDT	Thursday, March 29, 2012 2:39:46 PM EDT		55664	1e08ae0c-13af-4897-8912-d68421173285	Not found: NamedSolutionSetRef{queryId=30c8afa5-ed20-49fb-bed5-95da4576e244,namedSet=-subSelect-2,joinVars=[country, product]}	9	ANY	false	50		ChunkedMaterializationOp[50]	[nrOfReviews, country, product]					Running	0	2	0	0				0	0	0.0	0	0	0.0	0	0	N/A	0	0	0	0	0	0	0
30c8afa5-ed20-49fb-bed5-95da4576e244	Thursday, March 29, 2012 2:38:51 PM EDT	Thursday, March 29, 2012 2:39:46 PM EDT		55664	1e08ae0c-13af-4897-8912-d68421173285	Not found: NamedSolutionSetRef{queryId=30c8afa5-ed20-49fb-bed5-95da4576e244,namedSet=-subSelect-2,joinVars=[country, product]}	10	CONTROLLER	false	49		MemorySortOp[49]						Running	0	2	0	1				0	0	0.0	0	0	0.0	0	0	N/A	0	0	0	0	0	0	0
30c8afa5-ed20-49fb-bed5-95da4576e244	Thursday, March 29, 2012 2:38:51 PM EDT	Thursday, March 29, 2012 2:39:46 PM EDT		55664	1e08ae0c-13af-4897-8912-d68421173285	Not found: NamedSolutionSetRef{queryId=30c8afa5-ed20-49fb-bed5-95da4576e244,namedSet=-subSelect-2,joinVars=[country, product]}	11	CONTROLLER	false	51		ProjectionOp[51]						Running	0	2	0	0				0	0	0.0	0	0	0.0	0	0	N/A	0	0	0	0	0	0	0
queryId	beginTime	doneTime	deadline	elapsed	serviceId	cause	evalOrder	evalContext	controller	bopId	predId	bopSummary	predSummary	staticBestKeyOrder	overriddenKeyOrder	nvars	fastRangeCount	runState	sumMillis	opCount	numRunning	fanOut	queueShards	queueChunks	queueSolutions	chunksIn	unitsIn	unitsInPerChunk	chunksOut	unitsOut	unitsOutPerChunk	mutationCount	typeErrors	joinRatio	accessPathDups	accessPathCount	accessPathRangeCount	accessPathChunksIn	accessPathUnitsIn	solutions/ms	mutations/ms
3643324c-f856-42bf-87cd-28e72cb88f5b	Thursday, March 29, 2012 2:38:51 PM EDT	Thursday, March 29, 2012 2:39:13 PM EDT		22269	1e08ae0c-13af-4897-8912-d68421173285		total			total		total						AllDone	265077	3807	0	1				17228	1921840	111.55328534943116	17229	2128856	123.56236577862906	0	0	1.107717603962869	158	881010	1300649	881046	1300648	95	0
3643324c-f856-42bf-87cd-28e72cb88f5b	Thursday, March 29, 2012 2:38:51 PM EDT	Thursday, March 29, 2012 2:39:13 PM EDT		22269	1e08ae0c-13af-4897-8912-d68421173285		0	CONTROLLER	false	5		HTreeHashIndexOp[5]						AllDone	17	2	0	1				1	1	1.0	1	1	1.0	0	0	1.0	0	0	0	0	0	0	0
3643324c-f856-42bf-87cd-28e72cb88f5b	Thursday, March 29, 2012 2:38:51 PM EDT	Thursday, March 29, 2012 2:39:13 PM EDT		22269	1e08ae0c-13af-4897-8912-d68421173285		1	CONTROLLER	false	6		ProjectionOp[6]						AllDone	2	2	0	1				1	1	1.0	1	1	1.0	0	0	1.0	0	0	0	0	0	0	0
3643324c-f856-42bf-87cd-28e72cb88f5b	Thursday, March 29, 2012 2:38:51 PM EDT	Thursday, March 29, 2012 2:39:13 PM EDT		22269	1e08ae0c-13af-4897-8912-d68421173285		2	ANY	false	8	7	PipelineJoin[8]	SPOPredicate[7](?product, Vocab(14)[http://www.w3.org/1999/02/22-rdf-syntax-ns#type], TermId(69190U)[http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/ProductType4])	POS		1	41886	AllDone	18430	3	0	1				1	1	1.0	419	41886	99.96658711217184	0	0	41886.0	0	1	41886	419	41886	1	0
3643324c-f856-42bf-87cd-28e72cb88f5b	Thursday, March 29, 2012 2:38:51 PM EDT	Thursday, March 29, 2012 2:39:13 PM EDT		22269	1e08ae0c-13af-4897-8912-d68421173285		3	ANY	false	10	9	PipelineJoin[10]	SPOPredicate[9](?review, Vocab(107)[http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/reviewFor], ?product)	POS		2	2848260	AllDone	92864	55	0	1				419	41886	99.96658711217184	4222	419640	99.39365229748934	0	0	10.018621973929237	0	41886	419640	41505	419640	18	0
3643324c-f856-42bf-87cd-28e72cb88f5b	Thursday, March 29, 2012 2:38:51 PM EDT	Thursday, March 29, 2012 2:39:13 PM EDT		22269	1e08ae0c-13af-4897-8912-d68421173285		4	ANY	false	12	11	PipelineJoin[12]	SPOPredicate[11](?review, TermId(13188701U)[http://purl.org/stuff/rev#reviewer], ?reviewer)	POS		2	2848260	AllDone	86360	553	0	1				4222	419640	99.39365229748934	4220	419640	99.44075829383887	0	0	1.0	0	419640	419640	419640	419640	18	0
3643324c-f856-42bf-87cd-28e72cb88f5b	Thursday, March 29, 2012 2:38:51 PM EDT	Thursday, March 29, 2012 2:39:13 PM EDT		22269	1e08ae0c-13af-4897-8912-d68421173285		5	ANY	false	14	13	PipelineJoin[14]	SPOPredicate[13](?reviewer, TermId(69857U)[http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/country], ?country)	POS		2	154607	AllDone	55788	3191	0	1				4220	419640	99.44075829383887	4220	419640	99.44075829383887	0	0	1.0	158	419482	419482	419482	419482	18	0
3643324c-f856-42bf-87cd-28e72cb88f5b	Thursday, March 29, 2012 2:38:51 PM EDT	Thursday, March 29, 2012 2:39:13 PM EDT		22269	1e08ae0c-13af-4897-8912-d68421173285		6	CONTROLLER	false	15		PipelinedAggregationOp[15]						AllDone	5089	2	0	1				4220	419640	99.44075829383887	1	207007	207007.0	0	0	0.49329663521113337	0	0	0	0	0	9	0
3643324c-f856-42bf-87cd-28e72cb88f5b	Thursday, March 29, 2012 2:38:51 PM EDT	Thursday, March 29, 2012 2:39:13 PM EDT		22269	1e08ae0c-13af-4897-8912-d68421173285		7	CONTROLLER	false	16		ProjectionOp[16]						AllDone	33	2	0	1				1	207007	207007.0	1	207007	207007.0	0	0	1.0	0	0	0	0	0	9	0
3643324c-f856-42bf-87cd-28e72cb88f5b	Thursday, March 29, 2012 2:38:51 PM EDT	Thursday, March 29, 2012 2:39:13 PM EDT		22269	1e08ae0c-13af-4897-8912-d68421173285		8	CONTROLLER	false	17		HTreeSolutionSetHashJoinOp[17]						AllDone	3067	2	0	1				0	0	0.0	2071	207007	99.95509415741188	0	0	N/A	0	1	1	0	0	9	0
3643324c-f856-42bf-87cd-28e72cb88f5b	Thursday, March 29, 2012 2:38:51 PM EDT	Thursday, March 29, 2012 2:39:13 PM EDT		22269	1e08ae0c-13af-4897-8912-d68421173285		9	ANY	false	19		ChunkedMaterializationOp[19]	[nrOfReviews]					AllDone	2857	2	0	1				2071	207007	99.95509415741188	2071	207007	99.95509415741188	0	0	1.0	0	0	0	0	0	9	0
3643324c-f856-42bf-87cd-28e72cb88f5b	Thursday, March 29, 2012 2:38:51 PM EDT	Thursday, March 29, 2012 2:39:13 PM EDT		22269	1e08ae0c-13af-4897-8912-d68421173285		10	CONTROLLER	false	18		PipelinedAggregationOp[18]						AllDone	570	2	0	1				2071	207007	99.95509415741188	1	10	10.0	0	0	4.830754515547783E-5	0	0	0	0	0	0	0
3643324c-f856-42bf-87cd-28e72cb88f5b	Thursday, March 29, 2012 2:38:51 PM EDT	Thursday, March 29, 2012 2:39:13 PM EDT		22269	1e08ae0c-13af-4897-8912-d68421173285		11	CONTROLLER	false	20		ProjectionOp[20]						AllDone	0	2	0	1				1	10	10.0	1	10	10.0	0	0	1.0	0	0	0	0	0	0	0
queryId	beginTime	doneTime	deadline	elapsed	serviceId	cause	evalOrder	evalContext	controller	bopId	predId	bopSummary	predSummary	staticBestKeyOrder	overriddenKeyOrder	nvars	fastRangeCount	runState	sumMillis	opCount	numRunning	fanOut	queueShards	queueChunks	queueSolutions	chunksIn	unitsIn	unitsInPerChunk	chunksOut	unitsOut	unitsOutPerChunk	mutationCount	typeErrors	joinRatio	accessPathDups	accessPathCount	accessPathRangeCount	accessPathChunksIn	accessPathUnitsIn	solutions/ms	mutations/ms
0ca3b3d7-424d-4ebe-8688-6ac1e52bdb80	Thursday, March 29, 2012 2:39:13 PM EDT	Thursday, March 29, 2012 2:39:30 PM EDT		16804	1e08ae0c-13af-4897-8912-d68421173285		total			total		total						AllDone	194082	1082	0	1				25619	2596110	101.33533705452984	25619	2637973	102.96939771263516	0	0	1.0161252797454654	0	879340	1716792	879736	1716792	156	0
0ca3b3d7-424d-4ebe-8688-6ac1e52bdb80	Thursday, March 29, 2012 2:39:13 PM EDT	Thursday, March 29, 2012 2:39:30 PM EDT		16804	1e08ae0c-13af-4897-8912-d68421173285		0	ANY	false	23	22	PipelineJoin[23]	SPOPredicate[22](?product, Vocab(14)[http://www.w3.org/1999/02/22-rdf-syntax-ns#type], TermId(69190U)[http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/ProductType4])	POS		1	41886	AllDone	16285	3	0	1				1	1	1.0	419	41886	99.96658711217184	0	0	41886.0	0	1	41886	419	41886	2	0
0ca3b3d7-424d-4ebe-8688-6ac1e52bdb80	Thursday, March 29, 2012 2:39:13 PM EDT	Thursday, March 29, 2012 2:39:30 PM EDT		16804	1e08ae0c-13af-4897-8912-d68421173285		1	ANY	false	25	24	PipelineJoin[25]	SPOPredicate[24](?offer, TermId(1935477U)[http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/product], ?product)	POS		2	5696520	AllDone	82392	55	0	1				419	41886	99.96658711217184	8400	837453	99.69678571428571	0	0	19.99362555507807	0	41886	837453	41864	837453	49	0
0ca3b3d7-424d-4ebe-8688-6ac1e52bdb80	Thursday, March 29, 2012 2:39:13 PM EDT	Thursday, March 29, 2012 2:39:30 PM EDT		16804	1e08ae0c-13af-4897-8912-d68421173285		2	ANY	false	27	26	PipelineJoin[27]	SPOPredicate[26](?offer, TermId(1935476U)[http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/price], ?price)	POS		2	5696520	AllDone	79251	1023	0	1				8400	837453	99.69678571428571	8399	837453	99.70865579235624	0	0	1.0	0	837453	837453	837453	837453	49	0
0ca3b3d7-424d-4ebe-8688-6ac1e52bdb80	Thursday, March 29, 2012 2:39:13 PM EDT	Thursday, March 29, 2012 2:39:30 PM EDT		16804	1e08ae0c-13af-4897-8912-d68421173285		3	ANY	false	29		ChunkedMaterializationOp[29]	[price]					AllDone	9764	2	0	1				8399	837453	99.70865579235624	8399	837453	99.70865579235624	0	0	1.0	0	0	0	0	0	49	0
0ca3b3d7-424d-4ebe-8688-6ac1e52bdb80	Thursday, March 29, 2012 2:39:13 PM EDT	Thursday, March 29, 2012 2:39:30 PM EDT		16804	1e08ae0c-13af-4897-8912-d68421173285		4	CONTROLLER	false	28		PipelinedAggregationOp[28]						AllDone	6379	2	0	1				8399	837453	99.70865579235624	1	41864	41864.0	0	0	0.04998967106213722	0	0	0	0	0	2	0
0ca3b3d7-424d-4ebe-8688-6ac1e52bdb80	Thursday, March 29, 2012 2:39:13 PM EDT	Thursday, March 29, 2012 2:39:30 PM EDT		16804	1e08ae0c-13af-4897-8912-d68421173285		5	CONTROLLER	false	30		ProjectionOp[30]						AllDone	11	2	0	1				1	41864	41864.0	1	41864	41864.0	0	0	1.0	0	0	0	0	0	2	0
queryId	beginTime	doneTime	deadline	elapsed	serviceId	cause	evalOrder	evalContext	controller	bopId	predId	bopSummary	predSummary	staticBestKeyOrder	overriddenKeyOrder	nvars	fastRangeCount	runState	sumMillis	opCount	numRunning	fanOut	queueShards	queueChunks	queueSolutions	chunksIn	unitsIn	unitsInPerChunk	chunksOut	unitsOut	unitsOutPerChunk	mutationCount	typeErrors	joinRatio	accessPathDups	accessPathCount	accessPathRangeCount	accessPathChunksIn	accessPathUnitsIn	solutions/ms	mutations/ms
796be215-c859-402b-8fa6-38d0ac9b9cb0	Thursday, March 29, 2012 2:39:30 PM EDT	Thursday, March 29, 2012 2:39:45 PM EDT		15153	1e08ae0c-13af-4897-8912-d68421173285		total			total		total						AllDone	205912	3907	0	1				13083	1507814	115.24986623863029	13083	1714820	131.0723840097837	0	0	1.1372888167903998	164	881003	1300642	881040	1300642	113	0
796be215-c859-402b-8fa6-38d0ac9b9cb0	Thursday, March 29, 2012 2:39:30 PM EDT	Thursday, March 29, 2012 2:39:45 PM EDT		15153	1e08ae0c-13af-4897-8912-d68421173285		0	ANY	false	33	32	PipelineJoin[33]	SPOPredicate[32](?product, Vocab(14)[http://www.w3.org/1999/02/22-rdf-syntax-ns#type], TermId(69190U)[http://www4.wiwiss.fu-b

Change History

Changed 14 months ago by thompsonbry

  • status changed from new to accepted

As noted above, you can work around this by disabling the merge join with a query hint. You can also work around this by lifting out the common sub-Select as described at [1].

[1] https://sourceforge.net/apps/mediawiki/bigdata/index.php?title=NamedSubquery#BSBM_BI_Q5

Changed 14 months ago by thompsonbry

The exception indicates that the named solution set (-subSelect-2) could not be resolved against the query attributes when the HTreeMergeJoinOp was evaluated.

The contents of the query attributes are as follows. Note that there are two entries for -subSelect-1. The first hash index that was generated had no join variables. A new hash index was generated which has the same join variables that are predicated for the merge join. This was done by the HTreeHashIndexOp immediately before the HTreeMergeJoinOp.

com.bigdata.bop.DefaultQueryAttributes@e43b44{

NamedSolutionSetRef{queryId=ab2b8812-4df7-4bc6-8f80-9da5befae4d0,namedSet=--set-4,joinVars=[]}=HTreeHashJoinUtility{open=true,joinType=Normal,chunkSize=1000,joinVars=[],size=1,considered(left=4,right=1,joins=4)},

NamedSolutionSetRef{queryId=ab2b8812-4df7-4bc6-8f80-9da5befae4d0,namedSet=-subSelect-1,joinVars=[country,
product]}=HTreeHashJoinUtility{open=true,joinType=Normal,chunkSize=1000,joinVars=[country,
product],size=0,considered(left=0,right=0,joins=0)},

NamedSolutionSetRef{queryId=ab2b8812-4df7-4bc6-8f80-9da5befae4d0,namedSet=-subSelect-3,joinVars=[country,
product]}=HTreeHashJoinUtility{open=true,joinType=Normal,chunkSize=1000,joinVars=[country,
product],size=4,considered(left=0,right=0,joins=0)},

NamedSolutionSetRef{queryId=ab2b8812-4df7-4bc6-8f80-9da5befae4d0,namedSet=-subSelect-1,joinVars=[]}=HTreeHashJoinUtility{open=true,joinType=Normal,chunkSize=1000,joinVars=[],size=4,considered(left=1,right=4,joins=4)},

NamedSolutionSetRef{queryId=ab2b8812-4df7-4bc6-8f80-9da5befae4d0,namedSet=-subSelect-2,joinVars=[]}=HTreeHashJoinUtility{open=true,joinType=Normal,chunkSize=1000,joinVars=[],size=1,considered(left=0,right=0,joins=0)}}

The HTreeMergeJoinOp gets THREE (3) named solution set references, one corresponding to each of the named subqueries which are INCLUDEd into the main WHERE clause in the optimized AST. They all have the same join variables, which is good.

[NamedSolutionSetRef?{queryId=ab2b8812-4df7-4bc6-8f80-9da5befae4d0,namedSet=-subSelect-1,joinVars=[country, product]}
,NamedSolutionSetRef?{queryId=ab2b8812-4df7-4bc6-8f80-9da5befae4d0,namedSet=-subSelect-2,joinVars=[country, product]}
,NamedSolutionSetRef?{queryId=ab2b8812-4df7-4bc6-8f80-9da5befae4d0,namedSet=-subSelect-3,joinVars=[country, product]}]

Ah. The problem is that the named subqueries did not have the right join variables assigned. -subSelect-1 and -subSelect-3 are both Ok. The problem is with -subSelect-2. It was generated without ANY join variables. This is either an error in the static analysis logic or we simply have to build an another HTreeHashJoinOp to generate a hash index with the appropriate join variables for that index also.

Changed 14 months ago by thompsonbry

  • status changed from accepted to closed
  • resolution set to fixed

I've dug into this a bit further. If you look at the top-level WHERE clause, you can see:

SELECT ( ... )
  JoinGroupNode {
    INCLUDE -subSelect-1 JOIN ON ()
    INCLUDE -subSelect-2 JOIN ON ()
    INCLUDE -subSelect-3 JOIN ON (VarNode(country),VarNode(product))
  }

Clearly, we do not have shared join variables for these INCLUDEs / sub-selects.

There is a bug in the logic to recognized when there are INCLUDEs having the same join variables. The code was relying on a non-empty joinVars collection to indicate that it had processed the 2nd of the includes. However, since there were no join variables for that include either it was willing to let the 3rd include into the set of required includes. While the code is willing to generate a hash index for the first include, it does not attempt to do that for the 2nd+ includes.

The simple fix is to this logic so it will reject this query as a candidate for a merge join.

However, we should also look more closely at how we are attaching join variables to sub-selects. For this query, the different sub-selects have <code>country</code> as a shared projected variable. So, we SHOULD be doing a hash join on <code>country</code>. In fact, the code is falling back to a cross product hash join which is very non-optimal.

If we had determined during static analysis that each sub-select would definitely bind <code>country</code> then we could run the merge join since they would have a shared variable. Failing to get this join variable right is probably a major performance hit.

After all that the predicted result for openrdf differs at the 4th decimal place. I have therefore filtered out this test from the openrdf TCK.

<pre>
Missing bindings:
[product=http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/dataFromProducer2/Product63;

nrOfReviews="3"<http://www.w3.org/2001/XMLSchema#integer>;
avgPrice="4207.426"<http://www.w3.org/2001/XMLSchema#float>;
country=http://downlode.org/rdf/iso-3166/countries#RU]

====================================================
Unexpected bindings:
[country=http://downlode.org/rdf/iso-3166/countries#RU;

product=http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/dataFromProducer2/Product63;
nrOfReviews="3"<http://www.w3.org/2001/XMLSchema#integer>;
avgPrice="4207.4263"<http://www.w3.org/2001/XMLSchema#float>]

</pre>

Committed revision r6221.

Note: See TracTickets for help on using tickets.