Hi Folks,

 A new question has risen during the development of our storage engine.

 In short the engine is providing a read-only view to the server filesystem.

 One can issue (implemented via assisted discovery):

CREATE TABLE etc ENGINE=fsview ROOT=‘/etc’;

 Then it’s possible to tell:

SELECT name, fsize FROM etc ORDER BY fsize DESC LIMIT 10

resulting in:

+-----------------+--------+
| name            | fsize  |
+-----------------+--------+
| ld.so.cache     | 129417 |
| mailcap         |  44732 |
| fb.modes        |  24501 |
| mime.types      |  24066 |
| brltty.conf     |  22478 |
| services        |  19558 |
| devscripts.conf |  18037 |
| ltrace.conf     |  14867 |
| login.defs      |  10551 |
| sensors3.conf   |  10344 |
+-----------------+--------+

So far so good (the listing is not recursive).

An additional feature is to access subdirectories of the root (this is working via automated discovery):

SELECT name, fsize FROM `etc/init.d` 

This is not terribly wrong, but we’re thinking about the possiblity of improving it somehow that:

SELECT name, fsize FROM etc WHERE path = “init.d”;

However we’re in a bit of trouble how we could improve the storage engine to be able to handle this.

Of course we would not like to do a "deep enumeration" of the root directory (full table scan) . So somehow we would like to access/use the information from the where clause.

Can anybody recommend a way to solve that?


-- 
Andras Szabo
Sent with Airmail