| ========================== |
| PyGreSQL future directions |
| ========================== |
| |
| |
| To Do |
| ----- |
| |
| - Documentation for the pgdb module (everything specific to PyGreSQL). |
| - The large object and direct access functions need much more attention. |
| - The C module needs to be cleaned up and redundant code merged, |
| and should get its own unit test module. |
| - The fetch method should use real cursors. |
| - What shall we do with the "tutorial" directory |
| (it's rather a tutorial for Postgres/SQL than for PyGreSQL, |
| it's using only the query method from the classic pg module and |
| no other PyGreSQL functionality, it's rather a demo than a tutorial)? |
| |
| Proposed Patches |
| ---------------- |
| |
| - Notice handling with PQsetNoticeReceiver and PQsetNoticeProcessor |
| (one possible implementation was already suggested by Dmitry Dvoinikov |
| http://mailman.vex.net/pipermail/pygresql/2005-November/001530.html). |
| Maybe also make notifications accessible via the optional cursor and |
| connection attribute "messages" proposed in the DB-API specs. |
| |
| Wish List |
| --------- |
| |
| - Make SQLSTATE error codes available. |
| - Make use of PQexecParams() and PQprepare(). This could speed up |
| executemany() and allow retrieving binary data directly by setting |
| the resultFormat parameter to one. |
| - Support optional "errorhandler" extension. |
| - Support optional cursor and connection attribute "messages". |
| - Connection as context manager (see http://tinyurl.com/6j9cef). |
| - Users should be able to register their own types with _pg. |
| - Let pg and pgdb support namedtuples (as available in Py 2.6). |
| pg could get a new method namedresult(), and pgdb could provide |
| a row factory for namedtuples (similar to sqlite3). |
| - New methods in the classic module, similar to getresult() and |
| dictresult(), but returning dictionaries of rows instead of lists |
| of rows (with primary key or oids as keys). |
| - Make PyGreSQL thread-safe on the connection level. |
| - The API documentation could be created with Epydoc. |
| - Write a tutorial for beginners and advanced use. |
| - More and better documented examples. |