You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Andy Schlaikjer (JIRA)" <ji...@apache.org> on 2008/01/08 17:25:33 UTC

[jira] Created: (OPENJPA-478) contradictory text in manual section 10.2.6. JPQL GROUP BY, HAVING

contradictory text in manual section 10.2.6. JPQL GROUP BY, HAVING
------------------------------------------------------------------

                 Key: OPENJPA-478
                 URL: https://issues.apache.org/jira/browse/OPENJPA-478
             Project: OpenJPA
          Issue Type: Bug
          Components: docs
         Environment: linux, firefox, etc..
            Reporter: Andy Schlaikjer


In section 10.2.6. JPQL GROUP BY, HAVING (http://openjpa.apache.org/docs/latest/manual/jpa_langref.html#jpa_langref_group) the last paragraph seems contradictory:

"""
If there is no GROUP BY clause and the HAVING  clause is used, the result is treated as a single group, and the select list can only consist of aggregate functions. When a query declares a HAVING clause, it must always also declare a GROUP BY clause.
"""

The first sentences seems to imply that a query may incorporate a HAVING clause without a GROUP BY clause, but the second sentence indicates otherwise.

Looking at section 10.2.12 JPQL BNF (http://openjpa.apache.org/docs/latest/manual/jpa_langref.html#jpa_langref_bnf), it seems as though the BNF contradicts the last sentence:

"""
select_statement ::= select_clause from_clause [where_clause] [groupby_clause] [having_clause] [orderby_clause]
"""

otherwise the BNF would be something like this:

select_statement ::= select_clause from_clause [where_clause] [groupby_clause [having_clause]] [orderby_clause]

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (OPENJPA-478) contradictory text in manual section 10.2.6. JPQL GROUP BY, HAVING

Posted by "Milosz Tylenda (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/OPENJPA-478?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12603354#action_12603354 ] 

Milosz Tylenda commented on OPENJPA-478:
----------------------------------------

The JPA spec says:

"If there is no GROUP BY clause and the HAVING clause is used, the result is treated as a single group,
and the select list can only consist of aggregate functions. The use of HAVING in the absence of
GROUP BY is not required to be supported by an implementation of this speciļ¬cation. Portable appli-
cations should not rely on HAVING without the use of GROUP BY."

If OpenJPA does not allow HAVING without GROUP BY, the paragraph in question could be changed to something like:

"OpenJPA requires that if a query declares a HAVING clause, it must also declare a GROUP BY clause."


> contradictory text in manual section 10.2.6. JPQL GROUP BY, HAVING
> ------------------------------------------------------------------
>
>                 Key: OPENJPA-478
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-478
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: docs
>         Environment: linux, firefox, etc..
>            Reporter: Andy Schlaikjer
>
> In section 10.2.6. JPQL GROUP BY, HAVING (http://openjpa.apache.org/docs/latest/manual/jpa_langref.html#jpa_langref_group) the last paragraph seems contradictory:
> """
> If there is no GROUP BY clause and the HAVING  clause is used, the result is treated as a single group, and the select list can only consist of aggregate functions. When a query declares a HAVING clause, it must always also declare a GROUP BY clause.
> """
> The first sentences seems to imply that a query may incorporate a HAVING clause without a GROUP BY clause, but the second sentence indicates otherwise.
> Looking at section 10.2.12 JPQL BNF (http://openjpa.apache.org/docs/latest/manual/jpa_langref.html#jpa_langref_bnf), it seems as though the BNF contradicts the last sentence:
> """
> select_statement ::= select_clause from_clause [where_clause] [groupby_clause] [having_clause] [orderby_clause]
> """
> otherwise the BNF would be something like this:
> select_statement ::= select_clause from_clause [where_clause] [groupby_clause [having_clause]] [orderby_clause]

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.