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