navigation

Historical PL/Java documentation

Historical PL/Java documentation

The documents in this directory contain some of the earliest information on the design and implementation of PL/Java. They are not current information (see the project web site for that), but they may offer interesting insights into why certain aspects of PL/Java are the way they are.

Note that the documentation available on the project web site and on the wiki does include much of the information you can find here, but more actively kept up to date.

The files in this directory (excepting the one you are reading now ☺) have not been modified since 2007, and so predate the release of PL/Java 1.4.0. PL/Java had recently been updated to support PostgreSQL 8.1 and Java 1.4!

intro
An early introduction and description of the project and its capabilities. In March of 2006, an acknowledgment of sponsorship by EnterpriseDB was added.
readme
A README from a PL/Java 1.2.x distribution, with builds for Windows and for i386-based Linux, and instructions for how it was built and installed at that time.
userguide
User Guide for PL/Java 1.2. Described installation using the Deployer or install.sql and making entries in postgresql.conf. People really lived like that.
jni_rationale
Explains the original reasoning for PL/Java’s choice to load a Java virtual machine in each PostgreSQL session backend using it, rather than to share a VM in another process, the approach a contemporaneous project was exploring.
solutions
Describes several challenges that were encountered in PL/Java’s development, and the techniques adopted to meet them. This document is good background on: the locking strategy used to serialize access by Java threads into PostgreSQL, the integration of PostgreSQL exceptions and savepoints with Java exceptions, and the management of pointer lifetimes by Invocation, CallLocal, and JavaWrapper.