Dear all,

I would like to discuss a new feature in the SQLite R-tree which is not very 
difficult to implement but would improve
query performance a lot for use cases where the MBR (minimum bounding 
rectangle) of the query object leads to
a too large candidate set.

First of all the data structure in the database can stay at it is, also the 
R*-tree splitting algorithm.

The only thing I would like to see is that it is possible to register a 
function at the R-tree module 
which returns true or false and which gets as parameters the currently to be 
evaluated R*-tree rectangle and a void pointer 
representing the query object. Thus it would be possible to evaluate more 
complex query geometries during R-tree traversal.

The disadvantage of the approach is that the intersection tests between more 
complex query objects and an r-tree rectangle is more time consuming
(higher cpu cost for one test) but on the other hand the resulting candidate 
set would be much smaller (smaller i/o cost and less cpu-intersection tests).

The current approach could also be modelled this way, if the testing simply 
compares two rectangles and returns true if they intersect.

So the question is whether the intersection testing between query object and 
R-tree bounding rectangle 
cannot be passed to the r-tree module as user-defined  function and then be 
applied by the r-tree module during tree traversal.

Any thoughts on this?

Best Martin


      
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to