Hi Craig,

I agree the BNF would allow the query.

As I understood, the offending part is the aggregate on an expression ending in a size method call, correct? Then, the problem is not related to subqueries and we have it in JDO 2.0 already:
 select max(this.children.size()) from x.y.Node

Do we need to restrict the use of method calls inside of aggregate expressions to better support mapping JDOQL -> SQL?

Regards Michael


Hi Christiaan,

As I read the BNF for this filter, there's nothing to prevent it.

But you are right that it might be difficult if not impossible to translate this into SQL. Have you tried it with your favorite database or JDO implementation?

Craig

On Feb 21, 2008, at 7:14 AM, Christiaan wrote:


Hi,
a question about subqueries. With the subquery spec, should it be possible
to execute the following filter, which should return the nodes with the
maximum children?

"children.size() == (select max(node.children.size()) from x.y.Node node)"

I am asking this since the size() is probably translated into a count() and I don't believe it is allowed to perform an aggregate on another aggregate
in sql.

regards,
Christiaan
--
View this message in context: http://www.nabble.com/subquery%3A-max---size%28%29-tp15613074p15613074.html
Sent from the JDO - Development mailing list archive at Nabble.com.


Craig Russell
Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
408 276-5638 mailto:[EMAIL PROTECTED]
P.S. A good JDO? O, Gasp!



--
[EMAIL PROTECTED] Engineering GmbH  Tel.: +49/(0)30/235 520-33
Buelowstr. 66                Fax.: +49/(0)30/217 520-12
10783 Berlin mailto:[EMAIL PROTECTED]
Geschaeftsfuehrung: Martin Weber
Sitz Berlin, Amtsgericht Charlottenburg, HRB 564 52

Reply via email to