db-jdo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Bouschen <mbo.t...@spree.de>
Subject Re: Query test failure with newer derby version (was Re: Minutes: JDO TCK Conference Call Friday, Jan 7, 9 am Pacific Time)
Date Sun, 09 Jan 2011 17:10:25 GMT
Hi,

this is the JDOQL query:
   SELECT FROM org.apache.jdo.tck.pc.mylib.PCPoint EXCLUDE SUBCLASSES
   WHERE (x == 2) == true
and here is the generated SQL:
   SELECT 'org.apache.jdo.tck.pc.mylib.PCPoint' AS 
NUCLEUS_TYPE,A0.ID,A0.X,A0.Y
   FROM APPLICATIONIDENTITY0.PCPOINT A0
   WHERE A0.X = 2 = 1

So the question is: what does SQL define when comparing an integer and a 
boolean?
The expression "A0.X = 2" evaluates to a boolean which is then compared 
to the integer 1.

Regards Michael

> Hi Craig,
>
> [...]
>>>
>>> (2) query test:
>>>
>>> The failing test is in jdoql.conf: class 
>>> org.apache.jdo.tck.query.jdoql.ParenthesesMarkOperatorPrecedence 
>>> method runTestParenthesesMarkOperatorPrecedence08.
>>> The test runs a JDOQL query with PCPoint as candidate class and "(x 
>>> == 2) == true" as filter. It results in an exception thrown by the 
>>> derby SQL compiler:
>>>
>>> java.sql.SQLException: Comparisons between 'BOOLEAN' and 'INTEGER' 
>>> are not supported. Types must be comparable. String types must also 
>>> have matching collation. If collation does not match, a possible 
>>> solution is to cast operands to force them to the default collation 
>>> (e.g. SELECT tablename FROM sys.systables WHERE CAST(tablename AS 
>>> VARCHAR(128)) = 'T1')
>>>
>>> The derby versions 10.6.1.0 and 10.7.1.1 run into this exception. 
>>> But it does NOT happen with derby version 10.4.2.0, which we are 
>>> using in the maven1 environment.
>>
>> Good catch. Would you have time to file a JIRA with Derby?
>
> First I want to take a look at the generated SQL before filing a JIRA. 
> I'll keep you posted.
>
> Regards Michael
>
> [...]
>


-- 
*Michael Bouschen*
*Prokurist*

akquinet tech@spree GmbH
Bülowstr. 66, D-10783 Berlin

Fon:   +49 30 235 520-33
Fax:   +49 30 217 520-12
Email: michael.bouschen@akquinet.de
Url: www.akquinet.de <http://www.akquinet.de>

akquinet tech@spree GmbH, Berlin
Geschäftsführung: Martin Weber, Prof. Dr. Christian Roth
Amtsgericht Berlin-Charlottenburg HRB 86780 B
USt.-Id. Nr.: DE 225 964 680

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message