From: thhal at mailblocks.com (Thomas Hallgren) Date: Mon, 05 Jul 2004 00:41:01 +0200 Subject: [Pljava-dev] Upcoming features Message-ID: <40E8877D.60207@mailblocks.com> PostgreSQL now has feature freeze for version 7.5. This goes for Pl/Java as well. I plan to release a version 1.1 of Pl/Java with some new functionality. The code is in CVS already. Here are the highlights of what I have planned. Configuration of the JVM. PostgreSQL now have support for custom variable classes. In essence, this means that any PostgreSQL module can add configuration variables to the postgresql.conf file and also use the SQL command SET to reconfigure stuff in runtime. So far, I've added three such variables. pljava.classpath The classpath that will be used by the JVM. It will be merged with the classpath defined by the CLASSPATH environment variable such that the classes defined in the pljava.classpath will be placed first. pljava.debug If set, Pl/Java goes into loop where each turn sleeps for one second. The loop can be broken by attaching a debugger (such as gdb) and set the C variable pljavaDebug to 0. This mechanism is inteded for those who want to debug the C code in Pl/Java or when Pl/Java is used in conjunction with gcj (in which case gdb can be used as java debugger as well). pljava.vmoptions Each option in this string is passed on to the JVM. Suitable for controlling min/max heap, Java debugging, etc. GCJ support. Pl/Java can now run using GCJ (see http://gcc.gnu.org/java). Since each connection in PostgreSQL is a process of its own and hence spawn a JVM of its own, the use of GCJ can be a significant improvement when it comes to resource consumption and start up times. When Pl/Java is compiled for GCJ, the pljava.jar is no longer needed. Everything is linked with the shared object. GCJ 3.4 is required to make everything work OK. GCJ has currently only been tested on Linux. Transactional support. A new java class, called a Session is introduced. You get hold of the session using the static method Server.getSession(). A session can hold attributes and the attributes are under transaction control, i.e. all changes made to a session will remain if a transaction commits successfully. If the transaction aborts, all changes since the last commit will be lost. Kind regards, Thomas Hallgren