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 t...@spree GmbH
Bülowstr. 66, D-10783 Berlin
Fon: +49 30 235 520-33
Fax: +49 30 217 520-12
Email: michael.bousc...@akquinet.de
Url: www.akquinet.de <http://www.akquinet.de>
akquinet t...@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