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.