воскресенье, 6 декабря 2009 г.

SQLite Virtual Tables

Решил провести экспедицию в пучины иинтернет в поисках идей. А искать собираюсь различные виртуальные таблицы для SQLite. Virtual Table в SQLite - это такая штука, которая обеспечивает доступ к любым внешним или внутренним данным с помощью стандартного SQL, подробнее см. по ссылке:
The Virtual Table Mechanism Of SQLite

Если мы заглянем в вики-страничку на офсайте
http://www.sqlite.org/cvstrac/wiki?p=VirtualTables
то в самом низу увидим некую приписку о существовании модуля для создания виртуальных таблиц на языке perl. Несложно найти и пример:
SQLite::VirtualTable::Pivot

Что ж, начало положено, идем дальше. Следующая реализация, судя по описанию, весьма функциональна, но является частью большого проекта - libferris:

Libferris and SQLite--A Powerful Combination, Part 1
Libferris and SQLite--A Powerful Combination, Part 2
Libferris and SQLite--A Powerful Combination, Part 3

Обещан доступ к xml-файлам, структуре файлов и каталогов (и их свойствам), к базам PostgreSQL, и многим другим хранилищам информации. Проект написан на C++ и имеет целую кучу зависимостей, так что пока не компилировал. Вводная статья от автора: Filesystem Indexing with libferris А вот и еще: Search file servers from the Web with libferris and PHP

А вот и просто модуль доступа к файловой системе, в зависимостях значится только Apache Portable Runtime Library:
Query Anything with SQLite: Virtual tables are the foundation of powerful feature

Еще встретилось расширение для чтения лент новостей Atom:
SQLite table to read Atom feeds
Оно собралось без особых усилий, хотя для новых версий gcc потребовалось немного подправить.
Пример использования:

.load /tmp/libfeedme.so.0.0.0
create virtual table onlamp using feedme
('http://mysqlmusings.blogspot.com/feeds/posts/default');
select title from onlamp;

SQLite table to read Atom feeds
...
Replication of DELETE FROM versus TRUNCATE TABLE
Row-based replication for the future
Row-based replication and user defined functions

.header on
.mode line
select * from onlamp limit 1;
title = Bisection testing using Quilt
link = http://mysqlmusings.blogspot.com/2009/11/bisection-testing-using-quilt.html
id = tag:blogger.com,1999:blog-23496029.post-7467363913754324621
updated = 2009-11-17T12:13:13.610+01:00
author = Mats Kindahlhttp://www.blogger.com/profile/07528917029894926261noreply@blogger.com
summary =



Upd.
Using libferris with XML
The World Is a libferris Filesystem

Комментариев нет:


(C) Alexey Pechnikov aka MBG, mobigroup.ru