Uploaded image for project: 'Blazegraph (by SYSTAP)'
  1. Blazegraph (by SYSTAP)
  2. BLZG-1113

* does not include var only set in values

    Details

      Description

      SELECT *
      { BIND (1 as ?x)
        VALUES ?z { "abc" "def" }
      }
      

      Returns a result set with only one column headed by ?x, and does not include the ?z column.
      I guess that the Static Optimizer is the right place to address this ....

      SELECT ?x ?z
      { BIND (1 as ?x)
        VALUES ?z { "abc" "def" }
      }
      

      behaves as expected

        Activity

        Hide
        michaelschmidt michaelschmidt added a comment -

        Added test cases four all four cases mentioned above, merged into master.

        Show
        michaelschmidt michaelschmidt added a comment - Added test cases four all four cases mentioned above, merged into master.
        Hide
        beebs Brad Bebee added a comment -

        michaelschmidt to add test case.

        Show
        beebs Brad Bebee added a comment - michaelschmidt to add test case.
        Hide
        bryanthompson bryanthompson added a comment -

        This is a question of incorporating the known bound / maybe bound variables from the exogenous bindings into the ASTWildcardProjectionOptimizer. For greater efficiency, the IBindingSet[] the exogenous bindings metadata should be accessed through: ctx.getSolutionSetStats() as set by AST2BOpUtility:

                // Compute some summary statistics about the exogenous bindings.
                ctx.setSolutionSetStats(SolutionSetStatserator.get(bindingSets));
        

        The same invocation can be used to discover the known and maybe bound variables in any embedded VALUES clauses.

        It is likely that the AST optimizers do not properly recurse in all cases into embedded VALUES clauses. The test suite should also look at this case:

        SELECT *
        { BIND (1 as ?x)
        }
        VALUES ?z { "abc" "def" }
        

        and this case

        SELECT *
        { BIND (1 as ?x)
          { SELECT * { 
        	OPTIONAL { ?a ?b ?z . }
            VALUES ?z { "abc" "def" }
            }
        }
        }
        
        Show
        bryanthompson bryanthompson added a comment - This is a question of incorporating the known bound / maybe bound variables from the exogenous bindings into the ASTWildcardProjectionOptimizer. For greater efficiency, the IBindingSet[] the exogenous bindings metadata should be accessed through: ctx.getSolutionSetStats() as set by AST2BOpUtility: // Compute some summary statistics about the exogenous bindings. ctx.setSolutionSetStats(SolutionSetStatserator.get(bindingSets)); The same invocation can be used to discover the known and maybe bound variables in any embedded VALUES clauses. It is likely that the AST optimizers do not properly recurse in all cases into embedded VALUES clauses. The test suite should also look at this case: SELECT * { BIND (1 as ?x) } VALUES ?z { "abc" "def" } and this case SELECT * { BIND (1 as ?x) { SELECT * { OPTIONAL { ?a ?b ?z . } VALUES ?z { "abc" "def" } } } }

          People

          • Assignee:
            michaelschmidt michaelschmidt
            Reporter:
            jeremycarroll jeremycarroll
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: