[Pljava-dev] Arrays support for object views

From: yazuna at gmail(dot)com (Krzysztof Nienartowicz)
To:
Subject: [Pljava-dev] Arrays support for object views
Date: 2008-09-26 14:02:01
Message-ID: 707ef6b40809260702n77f7737fh703b5123457df9bd@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pljava-dev

Hello,

By using simply:
receiver.updateObject(5, new Double[]{1.0,2.0,3.0});
I finally don't get any errors but the values are not related to the array
set and always stay the same. Seems they are not initialized properly even.

--wrapper with dummy parameters
select * from tt2(0,0.0,0.0,0.0);

gives:

1000;1;f;10;"{-1.06280184473225e-250,2.47032822920623e-323,0}";"";""
1000;1;f;10;"{-1.06291373259335e-250,2.47032822920623e-323,0}";"";""
1000;1;f;10;"{-1.06302562045446e-250,2.47032822920623e-323,0}";"";""
1000;1;f;10;"{-1.06313750831557e-250,2.47032822920623e-323,0}";"";""
1000;1;f;10;"{-1.06324939617667e-250,2.47032822920623e-323,0}";"";""

The good thing is the size of an array is reflected properly, so if I
change the size of an array in java it gets reflected on sql side. Also, if
arrays passed are constant - i.e. values of Integer arrays are still wrong
but stay the same between the calls.
I implemented java.sql.Array but got similaar exception:

STATEMENT: select vals,vali from tt3(1,10000.0,0.0,0.0);

java.sql.SQLException: Cannot derive a value of class [Ljava.lang.Double;
from an object of class mySqlArrayImpl
at
org.postgresql.pljava.jdbc.SPIConnection.basicCoersion(SPIConnection.java:718)
at
org.postgresql.pljava.jdbc.SingleRowWriter.updateObject(SingleRowWriter.java:82)
at
org.postgresql.pljava.jdbc.ObjectResultSet.updateArray(ObjectResultSet.java:264)
at
gaia.cu7.omimpl.TimeSeriesImplSQL.assignRowValues(TimeSeriesImplSQL.java:329)
ERROR: java.sql.SQLException: Cannot derive a value of class
[Ljava.lang.Double; from an object of class mySqlArrayImpl

Could you please comment?

2008/9/23 Krzysztof Nienartowicz <yazuna at gmail.com>

> Hello,
> Thanks for the nice project. I encountered some traces of efforts to use
> arrays from within pljava but could not find a working example.
> I'm trying to create a function that would return a setof complex objects
> where some fields of the object are plain old dataype arrays. i.e.:
>
> CREATE TYPE tsTest2 AS
> (
> id bigint ,
> tsType integer ,
> residuals boolean ,
> length integer,
> obs float8[]
> ) ;
>
>
> then I create a mapping function:
>
> CREATE or replace FUNCTION tt2(integer ,float8 , float8 , float8 )
> RETURNS SETOF tstest2
> AS 'gaia.cu7.omimpl.TimeSeriesImplSQL.timeseriesReturn'
> IMMUTABLE LANGUAGE javaU;
>
> then, whatever I try to do in a java code for assignRowValues fails:
> i.e.: receiver.updateString(6, "{1.0,2.0,3.0}");
> would result in:
>
> -- Executing query:
> select tt2(0,0.0,0.0,0.0);
>
>
> ERROR: java.sql.SQLException: Cannot derive a value of class
> [Ljava.lang.Double; from an object of class java.lang.String
>
> you do have updateArray but could not spot any usage example with it.
> Please help, otherwise we will have to drop pljava from the project which
> has a chance to impact astronomy community thus leverage pljava.
> Best regards,
> Krzysztof
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pgfoundry.org/pipermail/pljava-dev/attachments/20080926/a544bde0/attachment.html>

In response to

Responses

Browse pljava-dev by date

  From Date Subject
Next Message Carolyn Green 2008-10-03 05:18:35 [Pljava-dev] org.postgresql.util.PSQLException: ERROR: could not load library "/opt/pljava/pljava.so": libjvm.so: cannot open shared object file: No such file or directory
Previous Message Krzysztof Nienartowicz 2008-09-23 16:29:54 [Pljava-dev] Arrays support for object views