[
https://issues.apache.org/jira/browse/DERBY-3676?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12750440#action_12750440
]
Rick Hillegas commented on DERBY-3676:
--------------------------------------
Hi Mark,
Thanks for looking at this issue and posting a patch. I think that your code
will work in most cases. However, it will do the wrong thing if there is an
embedded ? in a literal inside the SQL text or inside a delimited identifier.
For instance, it will produce odd output for the following queries:
select * from T where a like 'Am I blue?%' and b = ?
select "foo?" from T where b = ?
My gut feeling is that these edge cases are important enough that we should
handle them. I think that the problems are handled by Thomas' approach, which
Mike coded in his ick.txt patch: just append a bracketed parameter list at the
end of the sql text.
The public API issue will need to be addressed too. We don't want to put
EmbedPreparedStatement in the public API. Maybe we could add a new interface to
the public API: org.apache.derby.jdbc.DerbyPreparedStatement. Then, regardless
of whether you are working with an embedded or network connection, the
following code would work:
String sqlText = ((DerbyPreparedStatement) ps).toHumanReadableString();
> Make the toString() method of Derby PreparedStatements print out SQL text
> with ? parameters replaced by the values that have been set so far
> --------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: DERBY-3676
> URL: https://issues.apache.org/jira/browse/DERBY-3676
> Project: Derby
> Issue Type: Improvement
> Components: JDBC
> Reporter: Rick Hillegas
> Attachments: humanstringprepared.txt, ick.txt, ick.txt
>
>
> This topic came up in the following email thread on the user list:
> http://www.nabble.com/PreparedStatement.toString%28%29---nice-formatting-td17250811.html#a17250811
> Here's what the thread requests:
> "In mysql, a toString() on a PreparedStatement will do this, eg "select x
> from foo where x.a = ?" will become "select x from foo where x.a = 1" with
> the appropriate setValue() call."
> At first blush, this seems like it might be a simple project for a newcomer.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.