1$Id$ 2 3Roadmap for PDO 4 5Core, version 1.1: 6================== 7 8 - Add PDO::queryParams(), similar to PDO::query(), but accepts 9 an array of parameters as the second argument, pushing the remaining 10 args (which are args to setFetchMode()) up by one. 11 12 - Separate the handle factory call into two phases: 13 - handle creation 14 - connecting 15 16 This would then allow PDO to call setAttribute() 17 for each driver option specified in the constructor. 18 Right now, the handling of driver attributes is a bit sloppy. 19 20 - Add: 21 pdo.max_persistent 22 pdo.persistent_timeout 23 pdo.ping_interval 24 25 with the same meanings as those options from oci8. 26 27 - BLOB/CLOB. 28 Investigate the various APIs to determine if we can 29 transparently map BLOBs and CLOBs as PDO_PARAM_LOB. 30 If the API needs hints from the client side, we need 31 to introduce a PDO_PARAM_CLOB to differentiate between 32 binary and character data. 33 34 - Character set selection. 35 Generalize/standardize this. 36 37 - meta data. 38 Formalize getColumnMeta(). 39 Look at retrieving lists of tables and other objects in the db. 40 41 - tracing/logging/debugging 42 Add ini options: 43 44 pdo.trace_file 45 pdo.enable_tracing 46 47 And corresponding attributes, ATTR_TRACE_FILE, ATTR_TRACING_ENABLE, 48 settable at dbh and stmt levels independently. If set at the dbh level, 49 the stmt will inherit its value. If not set explicitly in code, the 50 defaults for the dbh will come from the INI settings. 51 52 ATTR_TRACE_FILE will accept a string or a stream. 53 54 The INI options are useful for administrative tracing/debugging. 55 Trace mode will output very verbose info. 56 57 58General DB API Roundup: 59========= 60 Consider how the following can be implemented in PDO: 61 62 mysqli_change_user(); alters auth credentials on a live connection 63 mysqli_info(); info about rows affected by last query 64 mysqli_master_query(); force query to run on master 65 mysqli_ping(); ping / reconnect 66 mysqli_stat(); one line summary of server status 67 68 oci_password_change() 69 70 Also consider master/slave and/or failover server configuration. 71 72 73Postgres: 74========= 75 76 - Real large object support. 77 - Someone with more pgsql experience can suggest more features 78 79Oracle: 80======= 81 82 - Support for array types and collections. 83 84PDO Session module: 85=================== 86 87 - Is it worth writing in C? 88 Probably not. 89 90 91vim:se et ts=2 sw=2 tw=78: 92 93