Github user afs commented on the issue:

    https://github.com/apache/jena/pull/345
  
    It does not need to change. It will behave as before.
    
    The changes here differentiate between a table that is of class 
`TableEmpty`, using function `TableEmpty.isTableEmpty`, and a table that 
evaluates to empty (no rows) using method `Table.isEmpty`.  Previously, there 
was only the latter method.
    
    `VALUES ?foo {}` creates algebra `TableN` with declared variable `?foo` and 
no rows.  It printed (incorrectly) as `(table empty)` but internally it was a 
`TableN` and method `isEmpty` is true (no rows).
    
    Now it prints as `(table (vars ?foo))`. There is no change to the data 
structure in the algebra.
    
    The difference is on conversion to a string, and on `.equals`, then only if 
read in again because it was not round-tripping the data structure, even if it 
evaluated to the same thing. Declared variables make no difference to the value 
of a table and that follows the SPARQL 1.1 spec exactly.
    
    As it makes no eval difference, we haven't noticed before. 



---

Reply via email to