File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / pdo / TODO
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue May 29 12:34:40 2012 UTC (12 years, 1 month ago) by misho
Branches: php, MAIN
CVS tags: v5_4_3elwix, v5_4_29p0, v5_4_29, v5_4_20p0, v5_4_20, v5_4_17p0, v5_4_17, HEAD
php 5.4.3+patches

    1: $Id: TODO,v 1.1.1.2 2012/05/29 12:34:40 misho 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: 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>