[ http://issues.apache.org/jira/browse/DERBY-522?page=all ]
A B updated DERBY-522:
----------------------
Attachment: d522.patch
d522.stat
Attaching a patch for this issue. The patch does the following:
1) Updates client to look for statements that begin with comments and to ignore
the comments when deciding the kind of statement that is being executed.
2) Adds test cases for statements that begin with comments to the
jdbcapi/nullSQLText.java test
3) Creates two new masters for nullSQLText: one for DerbyNet, one for
DerbyNetClient, to reflect the additional test cases.
4) Updates lang/syscat.sql master for DerbyNetClient to match the new behavior.
I couldn't find an existing test that really matched the condition, so I chose
"nullSQLText" since it involves testing edge cases for statements that are
passed to Derby via the JDBC "execute" call, which is similar to what the new
tests do. If, however, anyone thinks I should create a new test for this
particular issue (for the sake of clarity), I can certainly go ahead and do so.
I ran derbyall with Sun JDK 1.4 on Windows 2000 and saw no failures.
Many thanks to Kathey for the helpful comment regarding where the problem
was--she was absolutely right.
> ERROR X0Y79 raised when adding comments using "--" before sql queries with
> Network Client
> -----------------------------------------------------------------------------------------
>
> Key: DERBY-522
> URL: http://issues.apache.org/jira/browse/DERBY-522
> Project: Derby
> Type: Bug
> Components: Network Client
> Versions: 10.1.2.0, 10.1.1.0, 10.2.0.0
> Reporter: Kathey Marsden
> Assignee: A B
> Fix For: 10.2.0.0, 10.1.2.0
> Attachments: CommentBeforeSelect.java, d522.patch, d522.stat
>
> Comments before a select statement Throws exception with Network Client
> For Example a statement like the one below in the attached program with throw
> an exception.
> stmt.execute("-- This is a comment \n Select c11 from TAB1");
> org.apache.derby.client.am.SqlException: Statement.executeUpdate() cannot be
> called with a statement that returns a ResultSet.
> at
> org.apache.derby.client.am.Statement.completeSqlca(Statement.java:1354)
> at
> org.apache.derby.client.am.Statement.completeExecuteImmediate(Statement.java:964)
> at
> org.apache.derby.client.net.NetStatementReply.parseEXCSQLIMMreply(NetStatementReply.java:199)
> at
> org.apache.derby.client.net.NetStatementReply.readExecuteImmediate(NetStatementReply.java:50)
> at
> org.apache.derby.client.net.StatementReply.readExecuteImmediate(StatementReply.java:44)
> at
> org.apache.derby.client.net.NetStatement.readExecuteImmediate_(NetStatement.java:123)
> at
> org.apache.derby.client.am.Statement.readExecuteImmediate(Statement.java:960)
> at
> org.apache.derby.client.am.Statement.flowExecute(Statement.java:1587)
> at org.apache.derby.client.am.Statement.executeX(Statement.java:631)
> at org.apache.derby.client.am.Statement.execute(Statement.java:622)
> at
> CommentBeforeSelect.createAndPopulateTable(CommentBeforeSelect.java:70)
> at CommentBeforeSelect.main(CommentBeforeSelect.java:35)
> $
> To reproduce run the attached program
> java CommentBeforeSelect
--
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