It would be cool to have a easy way to see, how a query will be evaluated
using, which indices will be used and how the index results will be intersected.
The idea would be, that calling
hg.make(HGHandle.class, database).compile(
apply(
targetAt(database, 0),
and(
eq(edgeLabel),
incidentAt(node, 1)
)
)
).toString()
Prints something like:
Maps
- the result of a SortedIntersection of
- a Predicate based filter
- filtering the result of a Piped Filter piping
- the results of find by Searchable
- searching for "myLabel"
- using index "hg_string_value_index"
- using operator "EQ"
- into find by Searchable
- searching for <PIPED>
- using index "indexByValue"
- using operator "EQ"
- to retain atoms of type String
- a Predicate based random accessable filter
- filtering the incidence set of $nodeId
- to retain atoms having node $node between idx 1 and 1 in their incidence Set
- using an composite Mapping of
- deref and
- getIncidentAtom
This would be very usefull to
- get a feeling of how the query-execution interacts with the indexes
- immediatly see the results of your index optimizations
Original issue reported on code.google.com by google-a...@gehrels.info on 17 Dec 2012 at 3:19
Original issue reported on code.google.com by
google-a...@gehrels.info
on 17 Dec 2012 at 3:19