[Pljava-dev] CREATE FUNCTION docs inconsistent with implementation
Eric Faulhaber
ecf at goldencode.com
Tue Aug 8 23:39:35 UTC 2006
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
More information about the Pljava-dev
mailing list