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

From: "Ed Yu" <ekyu(at)sc(dot)rr(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: Solved, and a bug found! Re: JDBC question: Creating new
Date: 2002-11-16 00:52:09
Message-ID: ZEgB9.61679$ku2.4393734@twister.southeast.rr.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Actually storing an array in an RDBMS table column is a feature in
Postgresql that does not exists in most other database. So, in other words,
it is not driver-independence, it is database dependent.

"Joe Tomcat" <tomcat(at)mobile(dot)mp> wrote in message
news:1037239808(dot)1318(dot)466(dot)camel(at)linux(dot)(dot)(dot)
> 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 Alex Cheung Tin Ka 2002-11-16 03:06:22 data restore
Previous Message Stephan Szabo 2002-11-15 23:40:34 Fwd: [HACKERS] RI_FKey_check: foreign key constraint blocks parallel