What Next?
SQL for Non-SQL data sources
Networking for Non-Networked data sources
Template driver for command line interfaces
Data types, especially date/time/interval
Non-blocking (method calls return at once)
Notes:
No particular order or time-scale!
Generic standards-based SQL92 Parser (in C) supplied with the DBI but not tied closely to it. Available for use by any module. SQL interfaces could appear on all sorts of modules. Outputs a parse tree as a perl recursive data structure.
A DBD::Proxy to ‘forward’ method calls and arguments across a network to any normal driver on a remote machine and return results
A DBD::Pipe to act as a virtual base class to simplify the development of drivers for data sources that don’t offer a programming interface/API.
Data types: date/time/interval - returned as a ref with ““ overloaded.
Define interface for non-blocking: $dbh->{NonBlock}, $h->done
Initially Oracle and ODBC drivers. Only if database API supports it.
Make any changes required to support Threading in DB (if any)
Individual drivers may need to declare themselves ‘thread-safe’
If needed the DBI may block multi-threads from entering same driver.
Binding output parameters, typically for stored procedures.
Binding Arrays - especially Oracle