Re: Solved, and a bug found! Re: JDBC question: Creating

From: Barry Lind <blind(at)xythos(dot)com>
To: Joe Tomcat <tomcat(at)mobile(dot)mp>
Cc: pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: Re: Solved, and a bug found! Re: JDBC question: Creating
Date: 2002-11-15 01:15:33
Message-ID: 3DD44AB5.9000301@xythos.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Joe,

I can't reproduce this error (empty array causing errors). What version
of the driver are you using? Have you tried the 7.3beta builds? If you
can reproduce with the latest code, please send a simple java test case.

thanks,
--Barry

Joe Tomcat wrote:
> On Tue, 2002-11-12 at 17:39, Doug McNaught wrote:
>
>>Then you probably need to wrap your Java array in an object that
>>implements java.sql.Array so that the JDBC driver can talk to it.
>>Shouldn't be hard.
>
>
> That still doesn't make it driver-independent, does it?
>
> Anyway, I found a simple solution that works easily with Postgres: The
> way PreparedStatement.setArray(Array) works is that it actually gets
> translated to PreparedStatement.setString(Array.toString()). The
> Array.toString() method is very simple; it just makes a string that
> looks like '{484,282,945}' (for an int[]) so I just turned my int[] into
> such a string, and called PreparedStatement.setString(). This is a bit
> of a hack, but it seems that there is no db-independent way to do this,
> so I have no other options. If we need to move to some other db, this
> shouldn't be hard to modify as needed.
>
> There is one other problem, though: If I have an array with no
> elements, then this operation:
>
> Array array = resultSet.getArray(3);
> Object o = array.getArray();
>
> throws a Bad Integer exception. This seems like it must be a bug in the
> JDBC. To get around it, I put the o = array.getArray() inside a try
> block, and if throws an exception, I know that the array is
> zero-length. This is clunky and it violates the principle of "Only use
> exceptions for exceptional conditions" and probably has some performance
> problems. It seems that array.getArray() should always be able to
> return properly because that should be a class invariant.
>
> Any suggestions on this?
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
> (send "unregister YourEmailAddressHere" to majordomo(at)postgresql(dot)org)
>

In response to

Browse pgsql-general by date

  From Date Subject
Next Message snpe 2002-11-15 02:12:10 Re: limiting join results
Previous Message Steve Wolfe 2002-11-15 00:38:13 Re: [GENERAL] Upgrade to dual processor machine?