[ 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

Reply via email to