NAME
DBIx::SQLEngine::Docs::ToDo - Tasks, ideas, and bugs
TO DO
There are a number of things that could be done to improve this module.
Internals
Centralize logging interface by making 'DBI', 'SQL' arguments to general function.
Distribution
The test script is fairly minimal and really ought to exercise much more of the public interface. Specific things to add to the test include:
- Test for inserting, updating and selecting nulls, including "is null" test.
- Test with SQLite and temp file.
- Test new transaction code.
Finish moving all license, change, and todo blocks to their appropriate locations.
Columns
The column-information retrieve in DBIx::SQLEngine::Default should be using DBI's type_info methods.
Database Feature-Specific Interfaces
Proposed: Extend the base interface with the following interfaces:
fetch_select_with_limit
do_insert_with_sequence
Proposed Array Select interface
# ( $row_arrays, $column_hashes ) = $self->fetch_rows( %clauses );
// Also visit_rows, fetch_named_query_rows... [?]
Pre-defined Query Library
Proposed "Named Query" interface:
# $sqldb->define_named_query( name , string_or_sub ) // or return current
# %clauses = $sqldb->prepare_named_query( name, args ) // with conversion, recursion
# ( $row_hashes, $column_hashes ) = $sqldb->fetch_named_query( name, args )
# @results = $sqldb->visit_named_query( code, name, args )
# $result = $sqldb->do_named_query( name, args )
Additional Criteria
The Criteria subclasses are woefully incomplete.
Future Database-specific Functionality
Additional subclass logic will be required to support the following:
All: type of long field
Oracle: single, trailing long.
MySQL, Oracle: downcase column names.
DB2: Long insertion via multiple updates.
Informix: escape newlines on insert/update/where and select