close
The Wayback Machine - https://web.archive.org/web/20050829211438/http://gborg.postgresql.org:80/project/pljava/projdisplay.php
Image Image
Image
Image
GBorg
Home
Image
Login
Sign Up
Image
Browse Projects
ImageBy Category
ImageAll By Name
Image
Contact
Image

Image Image
Image Image
Image pljava Home | Bugs | Feature Requests | Tasks | CVS | Mailing Lists | Faq Image
Image Image
ImageThe pljava Project -- Server side Java for PostgreSQL
Image

PL/Java 1.1.0 released

Bringing the power of Java to PostgreSQL Functions and Triggers.

Java� is a registered trademark of Sun Microsystems, Inc. in the United States and other countries.
PostgreSQL� is a trademark of PostgreSQL Inc and Regents of the University of California.

PL/Java is an add on module to the PostgreSQL backend. It falls into the same category as PL/SQL, PL/TCL, PL/Perl, PL/Python, and PL/R. When installed, functions and triggers can be written in Java using your favorite Java IDE and installed into the database.

The PL/Java 1.1.0 release of PL/Java provides the following features.

  1. Ability to write both functions and triggers using Java 1.4 or higher.
  2. Standardized utilities (modeled after the SQL 2003 proposal) to install and maintain Java code in the database.
  3. Standardized mappings of parameters and result. Complex types as well as sets are supported.
  4. An embedded, high performance, JDBC driver utilizing the internal PostgreSQL SPI routines.
  5. Full support for PostgreSQL 8.0 savepoints and exception handling.
  6. Integration with GNU GCJ on selected platforms.

The 1.1 version adds a couple of new features that was not included in the 1.0 release such as

  1. Metadata support for the JDBC driver. Both DatabaseMetaData and ResultSetMetaData is included
  2. Two language handlers, one TRUSTED (the default) and one that is not TRUSTED (language tag is javaU to conform with the defacto standard)
  3. The ability to return a ResultSet that origins from a query as an alternative to build a ResultSet row by row
  4. A simple but efficient ObjectPool
  5. Ability to use IN, INOUT, and OUT parameters (requires not yet released PostgreSQL 8.1)

PL/Java in brief

A function or trigger in SQL will appoint a static method in a Java class. In order for the function to execute, the appointed class must be installed in the database. PL/Java adds a set of functions that helps installing and maintaining the java classes. Classes are stored in normal Java archives (AKA jars). A Jar may optionally contain a deployment descriptor that in turn contains SQL commands to be executed when the jar is deployed/undeployed. The functions are modeled after the standards proposed for SQL 2003.

PL/Java implements a standardized way of passing parameters and return values. Complex types and sets are passed using the standard JDBC ResultSet class. Great care has been taken not to introduce any proprietary interfaces unless absolutely necessary so that Java code written using PL/Java becomes as database agnostic as possible.

A new JDBC driver is included in PL/Java. This driver is written directly on top of the PostgreSQL internal SPI routines. This driver is essential since it's very common for functions and triggers to reuse the database. When they do, they must use the same transactional boundaries that where used by the caller.

PL/Java is optimized for performance. The Java virtual machine executes within the same process as the backend itself. This vouches for a very low call overhead. PL/Java is designed with the objective to enable the power of Java to the database itself so that database intensive business logic can execute as close to the actual data as possible.

The standard Java Native Interface (JNI) is used when bridging calls from the backend into the Java VM and vice versa. Please read the rationale behind the choice of technology and a more in-depth discussion about some implementation details. PL/Java is primarily targeted to the new 8.0 version but will run with PostgreSQL 7.4 versions too albeit with some limitations. Read PL/Java and PostgreSQL 8.0 to learn more.

For info on how to get started, please read the release notes. A user guide contains more information on how to create and manage our Java functions and triggers.

Source and selected binaries are available for download. See the download page for more details.

This project is released under the Berkeley/BSD license.

Want to join this project? Members can request to join a project development team.

Image
Project Modules
Image View bugs (40)
Image View feature requests (18)
Image View tasks (27)
Image View Web CVS
Image Mailing Lists
Image View FAQs
Image
Note: You may access CVS from the command line at...
:pserver:anonymous@gborg.postgresql.org:/usr/local/cvsroot/pljava
The password for anonymous login is 'anonymous'
Project Members
Image thhal -- Admin
Image filip -- Developer
Image jharris -- Member
Image Image
Project News (Archive)
PL/Java 1.1.0 released
PL/Java 1.1.0 includes a lot of new features such as DatabaseMetaData, ResultSetMetaData, language handlers for both trusted and untrusted language, additional semantics for functions returning SETOF, and simple ObjectPooling. The source of this version will compile with the CVS HEAD of the PostgreSQL source (at the time of release date that is) and IN/INOUT/OUT parameters are fully functional.
(full story...)

thhal : 04/14/2005

PL/Java 1.1.0b1 released
A 1.1 version of PL/Java is on its way. This is the first beta. The bump in minor version was motivated by the addition of new features such as DatabaseMetaData, ResultSetMetaData, language handlers for both trusted and untrusted language, additional semantics for functions returning SETOF, and simple ObjectPooling.
(full story...)

thhal : 02/25/2005

PL/Java 1.0.1 released
This release resolves a couple of important security issues.The most important one is perhaps that PL/Java now is a trusted language. Filip Hrbek, now member of the PL/Java project, contributed what was needed to make this happen. See task Make PL/Java a trusted language for more info.
(full story...)

thhal : 02/07/2005

PL/Java 1.0.0 released.
Today, after a long period of fine tuning, PL/Java 1.0.0 was finally released. Source and selected binaries are available for download.
(full story...)

thhal : 01/23/2005

PL/Java 1.0.0b6 released
The PL/Java 1.0.0.b6 contains several improvements and additions such as support for savepoints, SETOF functions returning scalar types, ClassLoader resource management, and ExecutionPlan pooling. This version requires PostgreSQL 7.4.x or 8.0.0rc1 or later. For details on what bugs that have been fixed, see task Bug fixes on 1.0.0.b5
(full story...)

thhal : 12/06/2004

Image
Image
Content owned by the GBorg development team is copyright @ 2000-2005 GBorg. All rights reserved.