[ http://issues.apache.org/jira/browse/DERBY-501?page=all ]
Knut Anders Hatlen updated DERBY-501:
-------------------------------------
Attachment: derby-501-v3.diff
derby-501-v3.stat
Committed the new test class in the v2 patch with revision 412711 (to make it
easier to work on DERBY-1314 and DERBY-1364). Didn't commit the code changes
since the patch is not reviewed yet.
I have uploaded a v3 patch which is identical to v2, but without the test
class. I'd appreciate if someone could review it. Thanks!
> Client and embedded drivers differ on invoking a procedure that returns a
> single Dynamic resultSet using CallableStatement.executeQuery()
> -----------------------------------------------------------------------------------------------------------------------------------------
>
> Key: DERBY-501
> URL: http://issues.apache.org/jira/browse/DERBY-501
> Project: Derby
> Type: Bug
> Components: JDBC
> Versions: 10.1.1.0, 10.0.2.1
> Environment: All Platforms
> Reporter: Satheesh Bandaram
> Assignee: Knut Anders Hatlen
> Attachments: Test.java, Test1.java, derby-501-v1.diff, derby-501-v1.stat,
> derby-501-v2.diff, derby-501-v2.stat, derby-501-v3.diff, derby-501-v3.stat
>
> It is possible to invoke a stored procedure that returns a single dynamic
> result using CallableStatement.executeQuery using Derby Client. The embedded
> JDBC driver, however, throws an exception like:
> Test starting ...url = jdbc:derby:tdb
> Exception in thread "main" ERROR X0Y78: Statement.executeQuery() cannot be
> called with a statement that returns a row count.
> at
> org.apache.derby.iapi.error.StandardException.newException(StandardException.java:301)
> at
> org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:434)
> at
> org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1142)
> at
> org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(EmbedPreparedStatement.java:1323)
> at
> org.apache.derby.impl.jdbc.EmbedCallableStatement.executeStatement(EmbedCallableStatement.java:109)
> at
> org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeQuery(EmbedPreparedStatement.java:241)
> at Test1.main(Test1.java:26)
> I think the embedded driver behavior is incorrect here, though I would double
> check that the JDBC spec says.
> To reproduce the problem,
> 1) Create a database called 'tdb' and a table called COMPANY as create table
> COMPANY(name char(10));
> 2) Insert two rows as: insert into COMPANY values 'IBM', 'SUN';
> 3) register a procedure as:
> CREATE PROCEDURE GETALLCOMPANIES() PARAMETER STYLE JAVA LANGUAGE JAVA READS
> SQL DATA DYNAMIC RESULT SETS 1 EXTERNAL NAME 'Test.getAllCompanies'
> 4) Set server classpath
> 5) Compile two attached java programs, Test and Test1
> 6) Execute 'java Test1 1' to run as a client program and 'java Test1 2' to
> run as an embedded program.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira