After much hacking, and many liters of caffeinated beverages, it is my pleasure to announce the first development release of PL/Py, the PostgresPy Project[1]'s Backend elements for the PostgreSQL ORDBMS.
The very terse project news item can be found here[2]. PL/Py, PostgresPy's Backend Project, is a procedural language extension for PostgreSQL, and a Python extension module providing Python interfaces to PostgreSQL internals. It provides a PostgreSQL DBA with the necessary functionality to create and execute functions written in Python within the backend. It has been designed with the principle of separating the embedding instance from the extension module(interfaces), so as to provide a very clean implementation. The PL features the following: * Set Returning Functions. * State keeping (think generators, etc, yes even for SRFs!). * Type system interface (Single dimensional arrays and Composites). * Direct Database Function Calls. * Objectified Queries. * Exception management and interfaces. * Encoding Choreography (Works with the Database's encoding). * HeapTuple/TupleDesc interface types. * Transaction Dictionary. * Direct Portal interface. * Internal Subtransactions. * file like Large Object interface. * Full tracebacks and exception information in uncaught exceptions. * Procedure validation (Syntax check on CREATE and Code storage). * Direct Relation interface (coming soon). * Boogs. Yes, there are bugs. For the quickest way to get started, see the Quick Start page[3]. The documentation for this project has yet to be completed. Some doc-strings exist, so using the sandbox mentioned in the Quick Start is the best way to discover the features of the PL. [1] http://python.projects.postgresql.org [2] http://pgfoundry.org/forum/forum.php?forum_id=449 [3] http://python.projects.postgresql.org/quick.html -- http://mail.python.org/mailman/listinfo/python-list