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 "Rick Hillegas (JIRA)" <ji...@apache.org> on 2010/11/08 22:00:12 UTC
[jira] Updated: (DERBY-4890) Different string to boolean conversion
on embedded and client
[ https://issues.apache.org/jira/browse/DERBY-4890?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Rick Hillegas updated DERBY-4890:
---------------------------------
Attachment: derby-4890-01-aa-setStringBoolean.diff
Attaching derby-4890-01-aa-setStringBoolean.diff. This patch fixes the bug. I am running tests now.
BOOLEAN needed to be added to the list of datatypes for which the network setString() method works.
Touches the following files:
-------------
M java/client/org/apache/derby/client/am/PreparedStatement.java
Added BOOLEAN to the list of datatypes for which setString() works.
-------------
M java/testing/org/apache/derbyTesting/functionTests/tests/lang/BooleanValuesTest.java
Added some test cases for this bug and for DERBY-4889.
-------------
M java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/ParameterMappingTest.java
Removed code recently added to bypass this problem.
> Different string to boolean conversion on embedded and client
> -------------------------------------------------------------
>
> Key: DERBY-4890
> URL: https://issues.apache.org/jira/browse/DERBY-4890
> Project: Derby
> Issue Type: Bug
> Components: JDBC
> Affects Versions: 10.7.1.0
> Reporter: Knut Anders Hatlen
> Assignee: Rick Hillegas
> Attachments: derby-4890-01-aa-setStringBoolean.diff
>
>
> The following code fragment behaves differently on client and embedded:
> PreparedStatement ps = c.prepareStatement("values cast(? as boolean)");
> ps.setString(1, "TRUE");
> ResultSet rs = ps.executeQuery();
> rs.next();
> System.out.println(rs.getBoolean(1));
> Embedded prints "true". Client raises an exception:
> Exception in thread "main" java.sql.SQLDataException: An attempt was made to get a data value of type 'VARCHAR' from a data value of type 'BOOLEAN'.
> at org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:72)
> at org.apache.derby.client.am.SqlException.getSQLException(SqlException.java:358)
> at org.apache.derby.client.am.PreparedStatement.setString(PreparedStatement.java:884)
> at SetByte.main(SetByte.java:6)
> Caused by: org.apache.derby.client.am.SqlException: An attempt was made to get a data value of type 'VARCHAR' from a data value of type 'BOOLEAN'.
> at org.apache.derby.client.am.PreparedStatement$PossibleTypes.throw22005Exception(PreparedStatement.java:3069)
> at org.apache.derby.client.am.PreparedStatement.setString(PreparedStatement.java:874)
> ... 1 more
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.