DBD::SQLite::VirtualTable::FileContent -- virtual table for viewing file contents |
DBD::SQLite::VirtualTable::FileContent -- virtual table for viewing file contents
Within Perl :
$dbh->sqlite_create_module(fcontent => "DBD::SQLite::VirtualTable::FileContent");
Then, within SQL :
CREATE VIRTUAL TABLE tbl USING fcontent( source = src_table, content_col = content, path_col = path, expose = "path, col1, col2, col3", -- or "*" root = "/foo/bar" get_content = Foo::Bar::read_from_file );
SELECT col1, path, content FROM tbl WHERE ...;
A ``FileContent'' virtual table is bound to some underlying source table, which has a column containing paths to files. The virtual table behaves like a database view on the source table, with an added column which exposes the content from those files.
This is especially useful as an ``external content'' to some fulltext table (see the DBD::SQLite::Fulltext_search manpage) : the index table stores some metadata about files, and then the fulltext engine can index both the metadata and the file contents.
Parameters for creating a FileContent
virtual table are
specified within the CREATE VIRTUAL TABLE
statement, just
like regular column declarations, but with an '=' sign.
Authorized parameters are :
source
content_col
content
.
path_col
source
that contains paths to files.
The default is path
.
expose
"*"
, which means
all source columns.
root
get_content
$file_content = $get_content->($path, $root);
Laurent Dami <dami@cpan.org>
Copyright Laurent Dami, 2014.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
DBD::SQLite::VirtualTable::FileContent -- virtual table for viewing file contents |