Annotation of embedaddon/php/ext/pdo/TODO, revision 1.1.1.2
1.1.1.2 ! misho 1: $Id$
1.1 misho 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:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>