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