Rose::DB::SQLite(3pm) | User Contributed Perl Documentation | Rose::DB::SQLite(3pm) |
Rose::DB::SQLite - SQLite driver class for Rose::DB.
use Rose::DB; Rose::DB->register_db( domain => 'development', type => 'main', driver => 'sqlite', database => '/path/to/some/file.db', ); Rose::DB->default_domain('development'); Rose::DB->default_type('main'); ... # Set max length of varchar columns used to emulate the array data type Rose::DB::SQLite->max_array_characters(128); $db = Rose::DB->new; # $db is really a Rose::DB::SQLite-derived object ...
Rose::DB blesses objects into a class derived from Rose::DB::SQLite when the driver is "sqlite". This mapping of driver names to class names is configurable. See the documentation for Rose::DB's new() and driver_class() methods for more information.
This class cannot be used directly. You must use Rose::DB and let its new() method return an object blessed into the appropriate class for you, according to its driver_class() mappings.
This class supports SQLite version 3 only. See the SQLite web site for more information on the major versions of SQLite:
<http://www.sqlite.org/>
Only the methods that are new or have different behaviors than those in Rose::DB are documented here. See the Rose::DB documentation for the full list of methods.
SQLite doesn't care what value you pass for a given column, regardless of that column's nominal data type. Rose::DB does care, however. The following data type formats are enforced by Rose::DB::SQLite's parse_* and format_* functions.
Type Format --------- ------------------------------ DATE YYYY-MM-DD DATETIME YYYY-MM-DD HH:MM::SS TIMESTAMP YYYY-MM-DD HH:MM::SS.NNNNNNNNN
This setting comes into play when Rose::DB::Object::Loader is used to auto-create column metadata based on an existing database schema.
SQLite does not have a native "ARRAY" data type, but it can be emulated using a "VARCHAR" column and a specially formatted string. The formatting and parsing of this string is handled by the "format_array()" and "parse_array()" object methods. The maximum length limit is honored by the "format_array()" object method.
If false, and if the specified database does not exist, then a fatal error will occur when an attempt is made to connect to the database.
If the resulting string is longer than "max_array_characters()", a fatal error will occur.
If a LIST of more than one item is passed, a reference to an array containing the values in LIST is returned.
If a an ARRAYREF is passed, it is returned as-is.
If STRING is a valid date keyword (according to validate_date_keyword) it is returned unmodified. Returns undef if STRING could not be parsed as a valid "DATE" value.
If STRING is a valid datetime keyword (according to validate_datetime_keyword) it is returned unmodified. Returns undef if STRING could not be parsed as a valid "DATETIME" value.
If STRING is a valid timestamp keyword (according to validate_timestamp_keyword) it is returned unmodified. Returns undef if STRING could not be parsed as a valid "DATETIME" value.
current_timestamp
The keywords are not case sensitive. Any string that looks like a function call (matches /^\w+\(.*\)$/) is also considered a valid date keyword if keyword_function_calls is true.
current_timestamp
The keywords are not case sensitive. Any string that looks like a function call (matches /^\w+\(.*\)$/) is also considered a valid datetime keyword if keyword_function_calls is true.
current_timestamp
The keywords are not case sensitive. Any string that looks like a function call (matches /^\w+\(.*\)$/) is also considered a valid timestamp keyword if keyword_function_calls is true.
John C. Siracusa (siracusa@gmail.com)
Copyright (c) 2010 by John C. Siracusa. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
2023-03-04 | perl v5.36.0 |