| 1 |
lars |
1 |
$Id: TODO,v 1.6.2.2 2005/11/26 21:29:31 wez Exp $
|
|
|
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 |
Userspace PDO Driver:
|
|
|
85 |
=====================
|
|
|
86 |
|
|
|
87 |
- Will be hard.
|
|
|
88 |
|
|
|
89 |
PDO Session module:
|
|
|
90 |
===================
|
|
|
91 |
|
|
|
92 |
- Is it worth writing in C?
|
|
|
93 |
Probably not.
|
|
|
94 |
|
|
|
95 |
|
|
|
96 |
vim:se et ts=2 sw=2 tw=78:
|
|
|
97 |
|