1NAME
2    DBIx::SQLEngine::Docs::ToDo - Tasks, ideas, and bugs
3
4TO DO
5    There are a number of things that could be done to improve this module.
6
7  Tests
8
9    The test scripts are incomplete and ought to exercise much more of the
10    public interface. Specific things to add to the test include:
11
12    Test for inserting, updating and selecting nulls, including "is null"
13    test.
14
15    Tests for new transaction code.
16
17    Tests for null-value/empty-string distinction.
18
19    Find people to test drivers for Informix, Sybase, MS SQL.
20
21  Object Mapping
22
23    The handling of primary keys in Schema::Table and Schema::Column is not
24    yet correct. The Record classes could also use a review to ensure
25    primary keys are handled correctly throughout.
26
27  Driver Interface
28
29    There sure are a lot of fetch methods... But it's not clear how to
30    usefully simplify and combine them:
31
32                            x_method()              x_rows()
33         fetch_select       hashes                  arrays
34         visit_select       hashes => \&sub         arrays => \&sub
35         fetchsub_select    hash_sub                array_sub
36         fetch_one          one_hash                one_array
37         fetch_one_value    one_value               one_list
38
39  Driver-Specific Features
40
41    Review DBIx::Compat; it seems like this information should map fairly
42    directly to candidate methods and subclasses.
43
44    Consider interface for handling BLOBs on drivers where they need to be
45    retrieved separately.
46
47    Consider interface for handling multiple simultaneous statement handles
48    on drivers where this needs special treatement, such as Sybase.
49
50    Determine which features, if any, should be handled by an ODBC driver
51    subclass.
52
53  Driver Internals
54
55    Determine the right way to handle the multiplexing drivers,
56    DBD::Multiplex, DBIx::DBCluster, and DBIx::HA, given that they may
57    reconnect to a different server in mid-stream. In practice, all of the
58    servers in a pool are typically of the same type so this may not be a
59    major issue.
60
61    The column-information retrieve in DBIx::SQLEngine::Default should be
62    using DBI's type_info methods.
63
64    Consider centralizing logging interface by making 'DBI', 'SQL' arguments
65    to general function, or using a callback that could be hooked to
66    log4perl.
67
68  Additional Criteria
69
70    The Criteria subclasses are incomplete. Candidates include: Inequality,
71    SubString, CaseInsensitiveSubString.
72
73    Consider enabling pure-Perl interpretation of criteria to allow
74    post-fetch processing by RecordSet objects:
75
76      package DBIx::SQLEngine::Criteria::Equality;
77
78      sub inverse { 'DBO::Criteria::Inequality' }
79
80      # $flag = $crit->matches( $record );
81      sub matches {
82        my ($crit, $record) = @_;
83        return ($crit->value( $record ) eq $crit->{'value'}) ? 1 : 0;
84      }
85
86SEE ALSO
87    the DBIx::SQLEngine::ReadMe manpage
88
89