Re: executeBatch() issue with new driver? - Mailing list pgsql-jdbc

From Alan Stange
Subject Re: executeBatch() issue with new driver?
Date
Msg-id 4187BE5E.6000301@rentec.com
Whole thread Raw
In response to Re: executeBatch() issue with new driver?  (Dave Cramer <pg@fastcrypt.com>)
Responses Re: executeBatch() issue with new driver?
List pgsql-jdbc
Dave Cramer wrote:

> Without looking at the code, I noticed that the javadoc's refer to
> addBatch as adding a single command, see below.
>
> Adds the given SQL command to the current list of commmands for this
> |Statement| object. The commands in this list can be executed as a
> batch by calling the method |executeBatch|.

I see.

This appears to be a change in behavior from the pg74 drivers, which do
accept more than a single statement.   The MS SQLServer JDBC driver
also accepts more than one statement.

I was leaning toward dropping our use of batches anyway.  Thanks.

-- Alan


> Alan Stange wrote:
>
>> Hello all,
>>
>> I'm using pg8 beta 3, with the pgdev.307.jdbc3.jar JDBC driver.
>>
>>
>> If I run the following example code:
>>
>> Connection conn = ...;
>> Statement st = conn.createStatement();
>> String sql = "create temp table t (a int4); insert into t (a) values
>> (1);";
>> st.addBatch(sql);
>> st.executeBatch();
>>
>> I get the following error:
>>
>> Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
>>    at
>> org.postgresql.jdbc2.AbstractJdbc2Statement$BatchResultHandler.handleError(AbstractJdbc2Statement.java:2317)
>>
>>    at
>> org.postgresql.jdbc2.AbstractJdbc2Statement$BatchResultHandler.handleCommandStatus(AbstractJdbc2Statement.java:2293)

>>
>>    at
>> org.postgresql.core.v3.QueryExecutorImpl.interpretCommandStatus(QueryExecutorImpl.java:1230)
>>
>>    at
>> org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:968)
>>
>>    at
>> org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:283)
>>
>>    at
>> org.postgresql.jdbc2.AbstractJdbc2Statement.executeBatch(AbstractJdbc2Statement.java:2371)
>>
>>    at com.rentec.fi.db.DbStatement.executeBatch(DbStatement.java:88)
>>
>>
>> Am I missing something here?
>>
>> Thanks!
>>
>> -- Alan
>>
>> ---------------------------(end of broadcast)---------------------------
>> TIP 2: you can get off all lists at once with the unregister command
>>    (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
>>
>>
>


pgsql-jdbc by date:

Previous
From: Vadim Nasardinov
Date:
Subject: Re: ps.setCharacterStream() and memory usage
Next
From: Dave Cramer
Date:
Subject: Re: executeBatch() issue with new driver?