- 1.x - Extend (database postgres-qcons) to handle subquery expressions Particularly: IN (scalar form) and NOT IN (scalar form). It would be nice to handle the subquery forms of these operators as well, in which case, might as well handle: EXISTS, ANY/SOME, ALL. Lastly, row-wise comparison may not be worth the hassle. - Provide builtin converters for all PostgreSQL "native" types. - Regularize error handling. - Use gh_/GH_ abstractions. This will make it easier to port Guile-PG to other versions of Guile and even other scheme implementations (long term). - Review examples in documentation. - Eventually - Enable post-install maintenance of (database postgres-meta). - Write/document proc that updates *class-defs*. - Also use it at "make" time. - Avoid usage of external programs createdb, dropdb, and psql. The first two are easy to replace, since they are simple wrappers for SQL commands "CREATE DATABASE" and "DROP DATABASE". The third is used in proc `defs-from-psql' in (database postgres-meta) and is more challenging. Probably involves mucking around w/ the "information_schema". - Add to the manual a section giving an overview of using large-objects. This must explain the ideas of OID's as references to objects. Also we need examples of using lo-streams. Perhaps a scheme implementation of lo-export and lo-import and, just for fun, a demonstration of executing scheme code contained in a large object. There should also be an example of updating a table with a large number of large objects. Perhaps it could take a directory with lots of binary files in it and store each file in a large object in a table listing the names of the files. - Incorporate scheme result-iterator/stream procs. This should provide query-level functions like (pg:for-each) which iterates over a set of tuples returned from a query. Also provide a streams interface so that (pg:stream-cdr) and (pg:stream-car) return tuples. - Keep an eye out for methodology to replace --with-libpq* - Clean up port type-hackery in libpostgres_lo.c. The weirdness is probably unavoidably related to Guile's port implementation. However, the least we can do is understand it better. Local Variables: mode: outline outline-regexp: "\\([ ][ ]\\)*[-+] " fill-column: 78 End: