1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- $Id$
- Roadmap for PDO
- Core, version 1.1:
- ==================
- - Add PDO::queryParams(), similar to PDO::query(), but accepts
- an array of parameters as the second argument, pushing the remaining
- args (which are args to setFetchMode()) up by one.
- - Separate the handle factory call into two phases:
- - handle creation
- - connecting
- This would then allow PDO to call setAttribute()
- for each driver option specified in the constructor.
- Right now, the handling of driver attributes is a bit sloppy.
- - Add:
- pdo.max_persistent
- pdo.persistent_timeout
- pdo.ping_interval
- with the same meanings as those options from oci8.
- - BLOB/CLOB.
- Investigate the various APIs to determine if we can
- transparently map BLOBs and CLOBs as PDO_PARAM_LOB.
- If the API needs hints from the client side, we need
- to introduce a PDO_PARAM_CLOB to differentiate between
- binary and character data.
- - Character set selection.
- Generalize/standardize this.
- - meta data.
- Formalize getColumnMeta().
- Look at retrieving lists of tables and other objects in the db.
- - tracing/logging/debugging
- Add ini options:
- pdo.trace_file
- pdo.enable_tracing
- And corresponding attributes, ATTR_TRACE_FILE, ATTR_TRACING_ENABLE,
- settable at dbh and stmt levels independently. If set at the dbh level,
- the stmt will inherit its value. If not set explicitly in code, the
- defaults for the dbh will come from the INI settings.
-
- ATTR_TRACE_FILE will accept a string or a stream.
- The INI options are useful for administrative tracing/debugging.
- Trace mode will output very verbose info.
- General DB API Roundup:
- =========
- Consider how the following can be implemented in PDO:
-
- mysqli_change_user(); alters auth credentials on a live connection
- mysqli_info(); info about rows affected by last query
- mysqli_master_query(); force query to run on master
- mysqli_ping(); ping / reconnect
- mysqli_stat(); one line summary of server status
- oci_password_change()
- Also consider master/slave and/or failover server configuration.
-
- Postgres:
- =========
- - Real large object support.
- - Someone with more pgsql experience can suggest more features
- Oracle:
- =======
- - Support for array types and collections.
- PDO Session module:
- ===================
- - Is it worth writing in C?
- Probably not.
- vim:se et ts=2 sw=2 tw=78:
|