Wow - I wasn't expecting such an immediate reply. It was just some wishful thinking on my part.
Quote:
|
Originally Posted by bernard
The search features offered by Freeze are constrained by the underlying database, Berkeley DB. Freeze could offer searches on multiple indices (with AND and OR expressions) but since there is no corresponding feature in Berkeley DB, performance-wise it would be like doing the individual searches and combining the results with intersections and unions. Actually it would probably be slower since Freeze would have to parse this expression.
|
Fair enough. I'm unfamiliar with the inner workings of BerkeleyDb. I just recalled that there was a MySQL implementation built on it, so I figured it wasn't impossible. Ofcourse that implementation might do all its work in RAM and simply use BerkeleyDb for storage.
Just to fully satisfy my curiosity - You have previously mentioned that you where considering implementing an SQL version of Freeze. Would that support more advanced searching?
My hunch is that it should be possible, but it might require a more complicated translation from IceObject to database schema. And I assume you don't want to go all-out and make and OODB implementation. Ofcourse the specification of indices might be a usefull middleground.
Quote:
|
Originally Posted by bernard
Range-searches on keys and indexed members using Berkeley DB seems more feasible. We would mainly need to specify comparison functions (Db::set_bt_compare) to sort the corresponding Ice-encoded binary strings. Is this the kind the non-equality search you have in mind?
|
That was pretty much exactly the kind of 'non-equality' search I had in mind. Would this allow for custom sorting functions (For more advanced ice structures), or would it be based on the compassiron fuctions that er already automatically defined for ice objects? Or would it be restricted to indices on the basic types?