Query response time very high

ok, great. how about this one:

SELECT * {
GRAPH <virtual://austria> {?image a :Images ; :frameId ?frameId }
GRAPH <virtual://austria> {?image :existence ?existence .}
}

@jess no result this time

Query plan is

> Projection(?image, ?frameId, ?existence) [#36K]
> `─ ServiceJoin [#36K]
>    +─ VirtualGraphMongoDB<virtual://austria> [#36212] {
>    │  +─ Query=
>    │  +─    { $match : {$and : [ {"_id" : {$exists : true, $ne : null}}, {"frameId" : {$exists : true, $ne : null}} ]} },
>    │  +─    {$project: {_id: '$_id', frameId: '$frameId'} }
>    │  +─ Vars=
>    │  +─    ?image <- TEMPLATE(http://austria.com/images/{_id/0})
>    │  +─    ?frameId <- COLUMN($1)^^xsd:string
>    │  }
>    `─ VirtualGraphMongoDB<virtual://austria> [#54319] {
>       +─ Query=
>       +─    {$unwind: "$existence"},
>       +─    { $match : {$and : [ {"_id" : {$exists : true, $ne : null}}, {"existence" : {$exists : true, $ne : null}} ]} }
>       +─ Vars=
>       +─    ?image <- TEMPLATE(http://austria.com/images/{_id/0})
>       +─    ?existence <- COLUMN($1)^^xsd:string
>       }

How about this one:

SELECT * {
GRAPH <virtual://austria> {?image a :Images ; :frameId ?frameId }
{ #pragma group.joins 
  GRAPH <virtual://austria> {?image :existence ?existence . }
}
}

@jess no results again

query plan is

> 
> Projection(?image, ?frameId, ?existence) [#36K]
> `─ ServiceJoin [#36K]
>    +─ VirtualGraphMongoDB<virtual://austria> [#36212] {
>    │  +─ Query=
>    │  +─    { $match : {$and : [ {"_id" : {$exists : true, $ne : null}}, {"frameId" : {$exists : true, $ne : null}} ]} },
>    │  +─    {$project: {_id: '$_id', frameId: '$frameId'} }
>    │  +─ Vars=
>    │  +─    ?image <- TEMPLATE(http://austria.com/images/{_id/0})
>    │  +─    ?frameId <- COLUMN($1)^^xsd:string
>    │  }
>    `─ VirtualGraphMongoDB<virtual://austria> [#54319] {
>       +─ Query=
>       +─    {$unwind: "$existence"},
>       +─    { $match : {$and : [ {"_id" : {$exists : true, $ne : null}}, {"existence" : {$exists : true, $ne : null}} ]} }
>       +─ Vars=
>       +─    ?image <- TEMPLATE(http://austria.com/images/{_id/0})
>       +─    ?existence <- COLUMN($1)^^xsd:string
>       }

Ok, let's try this one:

SELECT * {
GRAPH <virtual://austria> {?image a :Images ; :frameId ?frameId }
{ select * {
  GRAPH <virtual://austria> {?image :existence ?existence . }
} }
}

No output again @jess below is the query plan

Projection(?image, ?frameId, ?existence) [#36K]
`─ ServiceJoin [#36K]
   +─ VirtualGraphMongoDB<virtual://austria> [#36212] {
   │  +─ Query=
   │  +─    { $match : {$and : [ {"_id" : {$exists : true, $ne : null}}, {"frameId" : {$exists : true, $ne : null}} ]} },
   │  +─    {$project: {_id: '$_id', frameId: '$frameId'} }
   │  +─ Vars=
   │  +─    ?image <- TEMPLATE(http://austria.com/images/{_id/0})
   │  +─    ?frameId <- COLUMN($1)^^xsd:string
   │  }
   `─ Projection(?image, ?existence) [#54K]
      `─ VirtualGraphMongoDB<virtual://austria> [#54319] {
         +─ Query=
         +─    {$unwind: "$existence"},
         +─    { $match : {$and : [ {"_id" : {$exists : true, $ne : null}}, {"existence" : {$exists : true, $ne : null}} ]} }
         +─ Vars=
         +─    ?image <- TEMPLATE(http://austria.com/images/{_id/0})
         +─    ?existence <- COLUMN($1)^^xsd:string
         }```

How about this:

SELECT * {
{ select * {
GRAPH <virtual://austria> {?image a :Images ; :frameId ?frameId }
} }
{ select * {
  GRAPH <virtual://austria> {?image :existence ?existence . }
} }
}

@jess yes got the output this time
query plan is

`─ HashJoin(?image) [#36K]
   +─ Projection(?image, ?existence) [#54K]
   │  `─ VirtualGraphMongoDB<virtual://austria> [#54319] {
   │     +─ Query=
   │     +─    {$unwind: "$existence"},
   │     +─    { $match : {$and : [ {"_id" : {$exists : true, $ne : null}}, {"existence" : {$exists : true, $ne : null}} ]} }
   │     +─ Vars=
   │     +─    ?image <- TEMPLATE(http://austria.com/images/{_id/0})
   │     +─    ?existence <- COLUMN($1)^^xsd:string
   │     }
   `─ Projection(?image, ?frameId) [#36K]
      `─ VirtualGraphMongoDB<virtual://austria> [#36212] {
         +─ Query=
         +─    { $match : {$and : [ {"_id" : {$exists : true, $ne : null}}, {"frameId" : {$exists : true, $ne : null}} ]} },
         +─    {$project: {_id: '$_id', frameId: '$frameId'} }
         +─ Vars=
         +─    ?image <- TEMPLATE(http://austria.com/images/{_id/0})
         +─    ?frameId <- COLUMN($1)^^xsd:string
         }```

This looks like a bug with Stardog optimizing queries over MongoDB. I have created issue #8047 to track this. As a workaround, you can use the last query which returns the correct results.

Jess

Oh i see!! Looks like this is the 2nd bug I have found in past 20 days.. Kudos we are improving together!! :stuck_out_tongue_winking_eye: LOL..

Good stuff! Thanks for your patience and cooperation.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.