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
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 |