"Mikael Jansson" <tic_khr@xxxxxxxx> wrote: > > > They're pondering the idea of a virtual "QueryFS" > > > on which queries could be accessed as virtual directories whose > > > entries are the results of a search, and implementing the query > > > code in the kernel so the code doesn't have to be repeated in > > > each filesystem. > > That last sentence is more or less the only difference to the > > current > > BeOS. And that's also why Haiku doesn't yet have any query support; > > because I intend to solve that differently as well :) > Mind sharing your ideas and thoughts about it? I'm sure there are > other than me who are interested in the topic! Queries are already accessed like directories in BeOS, at least the Tracker gives you this impression, and also internally, it would only be a small change. That's not what I was aiming at :) It's very annoying that the query code is currently completely part of the file system - every file system has to reimplement it, and every new implementation introduces some more inconsistencies and incompatibilities; the whole query string is given verbatim to the file system. Our aim is to take the query code in BFS and divide it into several separate parts. When you implement a file system, you could then take the parts that you can use and build your query support with them. For example, a networking FS might want to let the server handle all the query work; it would not have to bother about query parsing etc. Additionally, we think about adding a standard means to access the query engine at no additional costs. I.e. we could export the indices as (non-standard) directories and have the query engine use that automatically for everything - you wouldn't need to include any additional support. This is an area with pretty few constants yet. We'll have to see how it turns out - with many tests regarding possible speed limits involved. The R1 file system API will probably not be a complete and public API, but rather a work in progress (of course, we're open source, so it's always available to write a file system for it). BTW using the BDirectory(node_ref *) constructor and a hard coded node_ref that points to an index, you can already do that with your standard BeOS. You will then also notice that the original BFS has a bug that might lead to circular indices - they're only hiding the symptoms, they've never fixed that directly. Bye, Axel.