hasNext()?
https://jena.apache.org/documentation/javadoc/arq/org/apache/jena/query/ResultSet.html#hasNext--

On Fri, Oct 6, 2017 at 1:26 PM, George News <[email protected]> wrote:

> On 2017-10-06 11:25, Andy Seaborne wrote:
> > The two result sets you show both have one row, with bindings. That's
> > consistent with aggregation of nothing (no groups, or if no GROUP BY, no
> > results from the WHERE pattern.
>
> I don't see it the same way. The first one (without max) is an empty
> array, while the second (with max) has an array with one object (empty).
>
> >
> > MAX() of nothing is unbound but for any aggregation, there always is a
> row/
> >
> > c.f. COUNT(*) is 0 when there are no solution.
> >
> > It's just MAX(...) can't return a "there isn't anything value"
> >
> >     Andy
> >
>
> I see your point as this gives a wrong idea on the result set as it
> really is empty. If I dont get any time I cannot calculate the max of
> nothing. In principle this is what Jena is returning as the object is
> empty, but there should be a way to not get this empty object within the
> array of bindings.
>
> Is there anyway I can check the resultset pointer to get the next()
> value without moving the pointer? I need to know in advance to retrieve
> all the results if there are or aren't any.
>
>
> >
> > On 06/10/17 10:15, George News wrote:
> >> Hi all,
> >>
> >> I am executing a SPARQL with MAX aggregate function and I'm facing a
> >> strange behaviour, or at least I think it is.
> >>
> >> The snipset of the select variables is the following:
> >>
> >> select ?id (MAX(?ti) as ?time) ?value ?latitude ?longitude
> >> where {
> >> ......
> >> }
> >
> >>
> >> If I launch the SPARQL query and there are results matching there is no
> >> problem and I get the expected answer.
> >>
> >> However if I launch the same query over another database and there
> >> should be no match I get the following:
> >>
> >> {
> >>      "head": {
> >>          "vars": [
> >>              "id", "time", "value", "latitude", "longitude"
> >>          ]
> >>      },
> >>      "results": {
> >>          "bindings": [
> >>              {}
> >>          ]
> >>      }
> >> }
> >>
> >> As you can see, although the resultset seems to be empty it is not. It
> >> is returning one empty object. Actually by checking resultset.hasNext()
> >> within the code it returns true.
> >>
> >> If I remove the MAX function from the variables everything is ok, and no
> >> empty object shows up.
> >>
> >> select ?id ?value ?latitude ?longitude
> >> where {
> >> ......
> >> }
> >> ----------
> >> {
> >>      "head": {
> >>          "vars": [
> >>              "id", "value", "latitude", "longitude"
> >>          ]
> >>      },
> >>      "results": {
> >>          "bindings": [
> >>              {}
> >>          ]
> >>      }
> >> }
> >>
> >> Why is happening that? Is this the expected behaviour? I guess it
> >> shouldn't. When you use COUNT funtion it returns 0, but MIN/MAX/etc arer
> >> different functions and if there is no result nothing should appear.
> >>
> >> Any help/tip is more than welcome.
> >>
> >> Regards,
> >> Jorge
> >>
> >>
> >>
> >>
> >>
> >
>

Reply via email to