Return to TODO CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / pdo |
1.1 ! misho 1: $Id: TODO 240335 2007-07-25 22:26:14Z iliaa $ ! 2: ! 3: Roadmap for PDO ! 4: ! 5: Core, 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: ! 58: General 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: ! 73: Postgres: ! 74: ========= ! 75: ! 76: - Real large object support. ! 77: - Someone with more pgsql experience can suggest more features ! 78: ! 79: Oracle: ! 80: ======= ! 81: ! 82: - Support for array types and collections. ! 83: ! 84: PDO Session module: ! 85: =================== ! 86: ! 87: - Is it worth writing in C? ! 88: Probably not. ! 89: ! 90: ! 91: vim:se et ts=2 sw=2 tw=78: ! 92: