Hi,
ARQ's qparse command line is very useful.
However, I am a bit unsure and confused about the various forms on the --print
option.
qparse --print query "SELECT DISTINCT ?g { GRAPH ?g { } }"
SELECT DISTINCT ?g
WHERE
{ GRAPH ?g
{ }
}
Ok.
qparse --print op "SELECT DISTINCT ?g { GRAPH ?g { } }"
(distinct
(project (?g)
(graph ?g
(table unit))))
Ok.
qparse --print quad "SELECT DISTINCT ?g { GRAPH ?g { } }"
(distinct
(project (?g)
(datasetnames ?g)))
It makes sort of sense, but what is this? Is it the algebra when GSPO, GPOS,
etc. indexes are used to answer the query?
qparse --print plan "SELECT DISTINCT ?g { GRAPH ?g { } }"
(Plan
QueryIteratorCloseable/QueryIteratorCheck
QueryIterRoot
QueryIterGraph
QueryIterProject ?g
QueryIterDistinct
)
This is the query plan for 'op' or 'quad'? This isn't clear to me.
Finally, there is another very useful option --explain, but in this case I am
not completely sure:
qparse --explain "SELECT DISTINCT ?g { GRAPH ?g { } }"
SELECT DISTINCT ?g
WHERE
{ GRAPH ?g
{ }
}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(distinct
(project (?g)
(graph ?g
(table unit))))
Does this mean, no optimization is done for this query?
I had a look at the documentation, but did not find the answer... of course, the
answer is in the source code. :-)
I'll look at it tomorrow and see if I can clarify to myself the meaning of
'quad' (which is probably the source of all my doubts).
Paolo