You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-dev@db.apache.org by "Michael Bouschen (JIRA)" <ji...@apache.org> on 2016/11/04 16:28:58 UTC

[jira] [Updated] (JDO-758) What can a subquery return?

     [ https://issues.apache.org/jira/browse/JDO-758?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Bouschen updated JDO-758:
---------------------------------
    Affects Version/s: JDO 3.1
        Fix Version/s: JDO 3.2
          Component/s: specification

> What can a subquery return?
> ---------------------------
>
>                 Key: JDO-758
>                 URL: https://issues.apache.org/jira/browse/JDO-758
>             Project: JDO
>          Issue Type: Improvement
>          Components: specification
>    Affects Versions: JDO 3.1
>            Reporter: Tilmann Zäschke
>            Priority: Minor
>             Fix For: JDO 3.2
>
>
> The current spec specifies that subqueries should support ordering and grouping, suggesting that subqueries should be able to return collections of results.
> However, a  Java {{Collection}} (others are not supported in JDOQL) only support {{size()}}, {{isEmpty()}} and {{contains()}}. These three functions all return scalars, furthermore, these could all be implemented easily with an additional term inside the subquery. Since the current reference implementation does not support all these functions, it should be considered whether subqueries should at all be required to return collections of objects.
> A similar argument could be made for returning persistent objects from subqueries (suggested by required support for 'unique'). Persistent objects cannot be used in the parent query, except for accessing their identity, or possibly casting them to a persistent type and access a field.
> Can anyone think of a usecase or other argument why subqueries should be able to return anything else than scalars/boolean (and possibly single persistent objects)?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)