db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-4338) Network client raises error "executeQuery method can not be used for update" when sql is preceded by /* */ comments
Date Wed, 26 Aug 2009 07:49:59 GMT

    [ https://issues.apache.org/jira/browse/DERBY-4338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12747816#action_12747816
] 

Knut Anders Hatlen commented on DERBY-4338:
-------------------------------------------

I only tested it from ij, but when I made getNonCommentToken() print the returned token, this
is what I saw:

ij(CONNECTION1)> { call syscs_util.syscs_checkpoint_database() };
tokenFound: call
Statement executed.
ij(CONNECTION1)> /* asdfads */ { call syscs_util.syscs_checkpoint_database() };
tokenFound: {
0 rows inserted/updated/deleted

Note that if the escaped call is prefixed with a comment, the braces are not stripped away,
and getNonCommentToken() returns the opening brace. Not sure if this is a problem, and I don't
think your patch is making the situation worse in any way (the difference in the return status
- "Statement executed" vs "0 rows inserted/..." - is also seen without your patch), so don't
let this issue hold the patch.

> Network client raises error "executeQuery method can not be used for update" when sql
is preceded by /* */ comments
> -------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-4338
>                 URL: https://issues.apache.org/jira/browse/DERBY-4338
>             Project: Derby
>          Issue Type: Bug
>          Components: Network Client
>    Affects Versions: 10.4.1.3, 10.4.2.0, 10.5.1.1, 10.5.2.0, 10.5.3.0
>            Reporter: Will Gomes
>            Assignee: Dag H. Wanvik
>             Fix For: 10.6.0.0
>
>         Attachments: derby-4338-a.diff, derby-4338-a.stat, derby-4338-b.diff, derby-4338-b.stat
>
>
> Network derby client does not properly detect a sql select statement preceded by /* */
comments.  As a result the sql appears to be detected as an update statement, and results
in  the following error:
>  org.apache.derby.client.am.SqlException: executeQuery method can not be used for update.
> 	at org.apache.derby.client.am.Statement.checkForAppropriateSqlMode(Unknown Source)
> 	at org.apache.derby.client.am.PreparedStatement.flowExecute(Unknown Source)
> 	at org.apache.derby.client.am.PreparedStatement.executeQueryX(Unknown Source)
> The problem appears to be in Statment.parseSqlAndSetSqlModes(), which only appears to
check for "--" style comments.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message