Re: Multi-Demensional Array Support. - Mailing list pgsql-jdbc

From Oliver Jowett
Subject Re: Multi-Demensional Array Support.
Date
Msg-id 421BA7AF.8030709@opencloud.com
Whole thread Raw
In response to Multi-Demensional Array Support.  (Greg Johnson <gregj@interprose.com>)
List pgsql-jdbc
Greg Johnson wrote:
> I started hacking in multi-dimensional array support into the driver.
>
> However, with the getArray() function I have to return an ArrayList of
> ArrayLists (or Object[] of Object[]) instead of the native type Object
> [][] for example. I was wondering what you guys/gals thoughts are on the
> this?
>
> As an application developer I personally would like to get ArrayLists of
> ArrayLists back.

I assume you mean java.sql.Array.getArray(). The javadoc says you have
to return a real array, not an ArrayList. I think it makes sense to
return a multidimensional array when you have a multidimensional array
on the server side; why would you want to require the extra casting on
element access that you'd need if you returned an Object[] containing
Object[] elements?

(are there any other JDBC drivers that support multidimensional arrays?
what do they do here?)

> It seems that unless you what to have a whole bunch of nasty "if" logic
> that is the only way to implement multi-dimensional arrays cleanly.
> Example:
>  if array_dims==1
>     returnVal = String[];
>  if array_dims==2
>     returnVal = String[][];
>  else if array_dims==3
>     returnVal = String[][][];
>
> .. but I am not java guru so if there is a better way let me know.

You can build and access arrays where you don't know the component type
at compile type by using the methods of java.lang.reflect.Array.

> Also, is there a reason why a regular expression is not used to parse
> out the array string returned from postgresql?

java.util.regex is not present in JDK 1.2/1.3, which the driver needs to
compile under.

-O

pgsql-jdbc by date:

Previous
From: Oliver Jowett
Date:
Subject: Re: Performance tweaks
Next
From: Alan Stange
Date:
Subject: Re: Performance tweaks