Hi,
I'd like to enable UDT's written in Java and made some initial trial and error. I don't get very far. Here's what I do:

I take the 'complex' type example described in '31.11 User-Defined Types' and change it to use Java functions (see below). But I get:

 ERROR:  type "complex" does not exist

as soon as I execute the first CREATE statement. If I change the language from java to C and try again, the message is different (and more according to the docs):

  NOTICE:  type "complex" is not yet defined
  DETAIL:  Creating a shell type definition.

The documentation says "Creating a new base type requires implementing functions to operate on the type in a low-level language, usually C". I read that as it would be possible to use other languages. Apparently java is not one of them. What can I do to change that?

Kind regards,
Thomas Hallgren


CREATE FUNCTION complex_in(cstring)
   RETURNS complex
   AS 'org.postgresql.pljava.example.Complex.in'
   LANGUAGE java IMMUTABLE STRICT;

CREATE FUNCTION complex_out(complex)
   RETURNS cstring
   AS 'org.postgresql.pljava.example.Complex.out'
   LANGUAGE java IMMUTABLE STRICT;

CREATE FUNCTION complex_recv(internal)
   RETURNS complex
   AS 'org.postgresql.pljava.example.Complext.recv'
   LANGUAGE java IMMUTABLE STRICT;

CREATE FUNCTION complex_send(complex)
   RETURNS bytea
   AS 'org.postgresql.pljava.example.Complext.send'
   LANGUAGE java IMMUTABLE STRICT;

CREATE TYPE complex (
  internallength = 16,
  input = complex_in,
  output = complex_out,
  receive = complex_recv,
  send = complex_send,
  alignment = double
);



---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

              http://archives.postgresql.org

Reply via email to