table of contents
DBD::SQLite::VirtualTable::FileContent(3pm) | User Contributed Perl Documentation | DBD::SQLite::VirtualTable::FileContent(3pm) |
NAME¶
DBD::SQLite::VirtualTable::FileContent -- virtual table for viewing file contentsSYNOPSIS¶
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 ...;
DESCRIPTION¶
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 DBD::SQLite::Fulltext_search) : the index table stores some metadata about files, and then the fulltext engine can index both the metadata and the file contents.
PARAMETERS¶
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"
- The name of the source table. This parameter is mandatory. All other parameters are optional.
- "content_col"
- The name of the virtual column exposing file contents. The default is "content".
- "path_col"
- The name of the column in "source" that contains paths to files. The default is "path".
- "expose"
- A comma-separated list (within double quotes) of source column names to be exposed by the virtual table. The default is "*", which means all source columns.
- "root"
- An optional root directory that will be prepended to the path column when opening files.
- "get_content"
- Fully qualified name of a Perl function for reading file contents. The
default implementation just slurps the entire file into a string; but this
hook can point to more sophisticated implementations, like for example a
function that would remove html tags. The hooked function is called like
this :
$file_content = $get_content->($path, $root);
AUTHOR¶
Laurent Dami <dami@cpan.org>COPYRIGHT AND LICENSE¶
Copyright Laurent Dami, 2014.This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
2019-02-13 | perl v5.28.1 |