I see that Derby produces the SQL:

SELECT (CAST(t0.name AS VARCHAR(1000)) || CAST(? AS VARCHAR(1000))) AS cname 
FROM Game t0 ORDER BY cname DESC [params=(String) 123]

Which is virtually identical, so this seems to be a problem with Ingres.

Alan 

> -----Original Message-----
> From: Alan Raison [mailto:[email protected]]
> Sent: 05 August 2009 10:24
> To: [email protected]
> Subject: Help understanding JPQL Parsing
> 
> Hi All
> 
> I've been running the unit tests against Ingres and now have a 93% pass
> rate :)
> 
> One problem I'm having is with the test
> o.a.o.persistence.jdbc.query.TestOrderByQuery.testOrderByConcatAliasDes
> c
> ending().
> 
> The JPQL in the test:
> 
> "SELECT CONCAT(p.name, '123') as cname FROM Game p ORDER BY cname DESC"
> 
> creates the SQL:
> 
> "SELECT (t0.name + ?) AS cname FROM Game t0 ORDER BY cname DESC"
> 
> Unfortunately, Ingres doesn't like the expression (col + ?), since it
> can't resolve the type.
> 
> Does anyone know why this value isn't being substituted in to the SQL?
> I see in SQLBuffer there's a getSQL() method which takes a parameter to
> substitute in parameter values - how can this be used?
> 
> Thanks
> Alan

Reply via email to