You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Knut Anders Hatlen (JIRA)" <ji...@apache.org> on 2011/03/31 20:42:08 UTC

[jira] [Updated] (DERBY-5170) Client doesn't handle double quotes in savepoint names

     [ https://issues.apache.org/jira/browse/DERBY-5170?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Knut Anders Hatlen updated DERBY-5170:
--------------------------------------

    Attachment: derby-5170-1a.diff

Attaching a patch that makes the repro test case pass with the client driver too.

The Connection class generates SQL statements to create, release and roll back to savepoints, but it doesn't quote the savepoint names properly. The ResultSet class had a private helper method that did proper quoting of SQL identifiers. I moved this method to a utility class so that it could be used by the Connection class too.

> Client doesn't handle double quotes in savepoint names
> ------------------------------------------------------
>
>                 Key: DERBY-5170
>                 URL: https://issues.apache.org/jira/browse/DERBY-5170
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC
>    Affects Versions: 10.7.1.1
>            Reporter: Knut Anders Hatlen
>            Assignee: Knut Anders Hatlen
>         Attachments: derby-5170-1a.diff
>
>
> I added the following test case to SavepointJdbc30Test and saw that it failed with the client driver:
>     public void testQuotes() throws SQLException {
>         setAutoCommit(false);
>         Statement s = createStatement();
>         s.execute("create table test_quotes(x int)");
>         s.execute("insert into test_quotes values 1");
>         Savepoint sp = getConnection().setSavepoint("a \" b ' c");
>         s.execute("insert into test_quotes values 2");
>         getConnection().rollback(sp);
>         JDBC.assertSingleValueResultSet(
>                 s.executeQuery("select * from test_quotes"),
>                 "1");
>     }
> Embedded had no problems with the savepoint, but the client raised this error when calling setSavepoint():
> java.sql.SQLSyntaxErrorException: Syntax error: Encountered "b" at line 1, column 16.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira