db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Fernanda Pizzorno (JIRA)" <derby-...@db.apache.org>
Subject [jira] Updated: (DERBY-1767) insertRow(), updateRow() and deleteRow() cannot handle table names and column names containing double quotes
Date Thu, 31 Aug 2006 11:25:23 GMT
     [ http://issues.apache.org/jira/browse/DERBY-1767?page=all ]

Fernanda Pizzorno updated DERBY-1767:

    Derby Info: [Patch Available]

The attached patch (derby-1767.diff) fixed the problem by replacing the quotes in the schema/table/column/cursor
names with two quotes when building the position update, position delete and insert statements
used by the updateRow(), deleteRow() and insertRow() methods. I have also changed the insertRow()
and deleteRow() methods so that they call popStatementContext() in their finally clauses.

I have successfully run derbyall with this patch. Can someone please review it?

> insertRow(), updateRow() and deleteRow() cannot handle table names and column names containing
double quotes
> ------------------------------------------------------------------------------------------------------------
>                 Key: DERBY-1767
>                 URL: http://issues.apache.org/jira/browse/DERBY-1767
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC
>    Affects Versions:
>            Reporter: Knut Anders Hatlen
>         Assigned To: Fernanda Pizzorno
>            Priority: Minor
>         Attachments: derby-1767.diff, derby-1767.stat, QuotesInNames.java
> ResultSet.insertRow(), ResultSet.updateRow() and ResultSet.deleteRow() fail with syntax
error if the table name or a column name contains a double quote character. The attached repro
gives this stack trace:
> Exception in thread "main" java.sql.SQLSyntaxErrorException: Syntax error: Encountered
"quoted" at line 1, column 24.
>         at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)
>         at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory40.java:137)
>         at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:72)
>         at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Util.java:203)
>         at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:380)
>         at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:345)
>         at org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:1378)
>         at org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:81)
>         at org.apache.derby.impl.jdbc.EmbedResultSet.closeOnTransactionError(EmbedResultSet.java:4342)
>         at org.apache.derby.impl.jdbc.EmbedResultSet.insertRow(EmbedResultSet.java:3678)
>         at QuotesInNames.main(QuotesInNames.java:15)
> Caused by: java.sql.SQLException: Syntax error: Encountered "quoted" at line 1, column
>         ... 11 more

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


View raw message