[Pljava-dev] CREATE FUNCTION docs inconsistent with implementation

From: ecf at goldencode(dot)com (Eric Faulhaber)
To:
Subject: [Pljava-dev] CREATE FUNCTION docs inconsistent with implementation
Date: 2006-08-08 23:39:35
Message-ID: 44D920B7.4020509@goldencode.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pljava-dev

In case anyone else has been having trouble with this, hopefully this
will save you some time...

The "Function mapping" (long-form) CREATE FUNCTION sample from the Wiki
seems to be out of sync with the backing implementation:

CREATE FUNCTION getsysprop(VARCHAR)
RETURNS VARCHAR
AS 'java.lang.String java.lang.System.getProperty(java.lang.String)'
LANGUAGE java;

When getsysprop is run as is, the Java class name is interpreted as
'java.lang.Stringjava.lang.System' and the return type as 'null', as in:

DEBUG: className = 'java.lang.Stringjava.lang.System', methodName =
'getProperty', parameters = 'java.lang.String', returnType = 'null'
DEBUG: Loading class java.lang.Stringjava.lang.System
ERROR: java.lang.ClassNotFoundException: java.lang.Stringjava.lang.System

The parseFunction function (line 387 in src/C/pljava/Functions.c from
the 1.3.0 source download) looks for '=' between the return type and
class name. Consequently, the CREATE FUNCTION statement must be:

CREATE FUNCTION getsysprop(VARCHAR)
RETURNS VARCHAR
AS 'java.lang.String=java.lang.System.getProperty(java.lang.String)'
LANGUAGE java;

Is the '=' delimiter expected to be a permanent syntax here, or is the
intention that the implementation eventually will match the docs?

Thanks,
Eric Faulhaber

Responses

Browse pljava-dev by date

  From Date Subject
Next Message Burtenshaw, John J. 2006-08-09 16:08:39 [Pljava-dev] Notify/Listen
Previous Message Burtenshaw, John J. 2006-08-08 17:13:06 [Pljava-dev] RMI from a trigger