==========================
PyGreSQL future directions
==========================

This list has been closed since tasks are now managed with the PyGreSQL
tracker that can be found at http://trac.vex.net:8000/pgtracker.
(ticket numbers have been added below):

To Do
-----

- Add docs for the pgdb module (everything specific to PyGreSQL) (#5).
- The large object and direct access functions need much more attention (#6).
- The fetch method should use real cursors (#7).
- The C module needs to be cleaned up and redundant code merged,
  and should get its own unit test module (#8).
- Clean up test_pg.py and merge it with TEST_PyGreSQL_classic.py (#9).
- The test suite for the classic module should also check that quoted
  mixed-case identifiers can be used everywhere - currently they can't.
  Improve pg.py accordingly, adding quotes etc. as needed (#10).
- 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 (#11)?

Wish List
---------

- Make use of PQexecParams() and PQprepare(). This could speed up
  executemany() and allow retrieving binary data directly by setting
  the resultFormat parameter to one (#16).
- Enhance cursor.description attribute, delivering more information
  available with PQfmod() or PQftable() for instance (#17).
- Support optional "errorhandler" extension (#18).
- Support optional cursor and connection attribute "messages" (#19).
- Users should be able to register their own types with _pg (#21).
- pg has now got a new method namedresult() that returns named tuples.
  pgdb should also support named tuples, maybe via a row_factory attribute
  on the connection, similar to sqlite3 (see #22).
- 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) (#23).
- Make PyGreSQL thread-safe on the connection level (#24).
- The API documentation could be created with Epydoc or Sphinx (#4).
- Write a tutorial for beginners and advanced use (#11).
- More and better documented examples (#4, #5, #11).
