db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lance J. Andersen" <Lance.Ander...@Sun.COM>
Subject Re: JDBC4 compliance question, was: [jira] Commented: (DERBY-1288) Bring Derby into JDBC compliance by supporting executeQuery() on escaped procedure invocations
Date Tue, 09 May 2006 16:42:40 GMT


Rick Hillegas wrote:
> Hi Lance,
>
> I agree with Knut Anders' interpretation of the javadoc for 
> java.sql.Statement. He is investigating how executeQuery() and 
> executeUpdate() should behave when the query text invokes a stored 
> procedure:
>
> 1) executeQuery() should raise an error if the procedure does not 
> return EXACTLY one ResultSet
could be an empty ResultSet but yes 1 ResultSet of some form
>
> 2) executeUpdate() should raise an error if the procedure returns ANY 
> ResultSets. Otherwise executeUpdate() should return 0.
i would expect this to fall into the category of '0 for SQL Statements 
that return nothing'
>
> Is this your interpretation, also?
>
> Thanks,
> -Rick
>
> ------------------------------------------------------------------------
>
> Subject:
> [jira] Commented: (DERBY-1288) Bring Derby into JDBC compliance by 
> supporting executeQuery() on escaped procedure invocations
> From:
> "Knut Anders Hatlen (JIRA)" <derby-dev@db.apache.org>
> Date:
> Tue, 09 May 2006 15:23:46 +0000 (GMT+00:00)
> To:
> Richard.Hillegas@sun.com
>
> To:
> Richard.Hillegas@sun.com
>
>
>     [ http://issues.apache.org/jira/browse/DERBY-1288?page=comments#action_12378633 ]

>
> Knut Anders Hatlen commented on DERBY-1288:
> -------------------------------------------
>
> What Derby currently does, is
>
>   executeQuery:
>
>     fails whenever a stored procedure is invoked (both embedded and
>     client)
>
>   executeUpdate:
>
>     embedded: fails if no result sets are returned, succeeds if one or
>     more result sets are returned
>
>     client: succeeds regardless of how many result sets are returned,
>     but the return value is invalid (-1) when no result sets are
>     returned (it is 0 otherwise)
>
> The way I read the javadoc at http://download.java.net/jdk6/docs/api/,
> (1) executeQuery() should fail if the number of result sets returned
> is not equal to one, and (2) executeUpdate() should fail if the number
> of result sets is not equal to zero, and (3) executeUpdate() should
> return 0 if the invocation of the stored procedure was successful. Is
> my understanding correct?
>
>   
>> Bring Derby into JDBC compliance by supporting executeQuery() on escaped procedure
invocations
>> ----------------------------------------------------------------------------------------------
>>
>>          Key: DERBY-1288
>>          URL: http://issues.apache.org/jira/browse/DERBY-1288
>>      Project: Derby
>>         Type: Improvement
>>     
>
>   
>>   Components: JDBC
>>     Versions: 10.2.0.0
>>     Reporter: Rick Hillegas
>>     Assignee: Knut Anders Hatlen
>>      Fix For: 10.2.0.0
>>     
>
>   
>> The following statement raises an error in Derby:
>>   statement.executeQuery( "{call foo()}" );
>> although this statement works:
>>   statement.executeUpdate( "{call foo()}" );
>> According to section 6.4 of the latest draft of the JDBC4 Compliance chapter, both
statements are supposed to work in order to claim Java EE JDBC Compliance.
>> We need to bring Derby into compliance by supporting executeQuery() on escaped procedure
invocations.
>>     
>
>   

Mime
View raw message