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