db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rick Hillegas (JIRA)" <j...@apache.org>
Subject [jira] Updated: (DERBY-4890) Different string to boolean conversion on embedded and client
Date Mon, 08 Nov 2010 21:00:12 GMT

     [ 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.


Mime
View raw message