Re: [Tracker] Large sparql query results
- From: Philip Van Hoof <spam pvanhoof be>
- To: "Spivak, Max" <spivak lab126 com>
- Cc: "tracker-list gnome org" <tracker-list gnome org>
- Subject: Re: [Tracker] Large sparql query results
- Date: Fri, 05 Mar 2010 10:20:45 +0100
On Thu, 2010-03-04 at 22:07 -0500, Spivak, Max wrote:
I have a question about large query results from tracker-store. in my
experience with SQL databases and their client api, when a query
results are generated, only a subset are initially transferred to the
client. The rest are loaded on demand as the client iterates over the
This usually only is the case when the client requests iterating over
the result using a so called cursor.
Usually are those cursors also one-direction only (you can't go back).
Because SQLite isn't MVCC it would mean that for the whole duration that
a client keeps such a cursor open, all other database connections will
be more or less blocked from doing things.
This is why we don't support a cursor API.
You can emulate a cursor API with LIMIT and OFFSET, of course.
How does libtracker-client handle this? What if the result set is too
big to fit in the client memory? Is there any sort of incremental
result returning ability or callback support with partial results? t
We at this moment don't provide this ourselves in libtracker-client.
LibQtTracker has a "streaming model" which will do this for you on a
QAbstractDataModel as far as I know.
Philip Van Hoof, freelance software developer
home: me at pvanhoof dot be
gnome: pvanhoof at gnome dot org
] [Thread Prev