Jump to: navigation, search

Difference between revisions of "EclipseLink/DesignDocs/312146"

Line 33: Line 33:
 
* [https://bugs.eclipse.org/bugs/show_bug.cgi?id=315087 support for cast function]
 
* [https://bugs.eclipse.org/bugs/show_bug.cgi?id=315087 support for cast function]
 
* [https://bugs.eclipse.org/bugs/show_bug.cgi?id=333645 group by fails in in]
 
* [https://bugs.eclipse.org/bugs/show_bug.cgi?id=333645 group by fails in in]
 +
* [https://bugs.eclipse.org/bugs/show_bug.cgi?id=276147 support union and intersect]
 +
* [https://bugs.eclipse.org/bugs/show_bug.cgi?id=305187 support platform independent functions and custom operators]
 +
* [https://bugs.eclipse.org/bugs/show_bug.cgi?id=321722 support nested join fetches]
 +
* [https://bugs.eclipse.org/bugs/show_bug.cgi?id=321724 support connect by]
 +
* [https://bugs.eclipse.org/bugs/show_bug.cgi?id=321725 support common functions]
  
 
Other JPQL bugs:
 
Other JPQL bugs:
Line 46: Line 51:
 
* [https://bugs.eclipse.org/bugs/show_bug.cgi?id=327848 sub-string fails]
 
* [https://bugs.eclipse.org/bugs/show_bug.cgi?id=327848 sub-string fails]
 
* [https://bugs.eclipse.org/bugs/show_bug.cgi?id=328378 element collection fails with in]
 
* [https://bugs.eclipse.org/bugs/show_bug.cgi?id=328378 element collection fails with in]
 
+
* [https://bugs.eclipse.org/bugs/show_bug.cgi?id=245652 count distinct fails]
 +
* [https://bugs.eclipse.org/bugs/show_bug.cgi?id=259867 bad sql for in] [https://bugs.eclipse.org/bugs/show_bug.cgi?id=243384] [https://bugs.eclipse.org/bugs/show_bug.cgi?id=314025]
 +
* [https://bugs.eclipse.org/bugs/show_bug.cgi?id=301741 jpql sub selects incorrect]
 +
* [https://bugs.eclipse.org/bugs/show_bug.cgi?id=307412 member of fails]
 +
* [https://bugs.eclipse.org/bugs/show_bug.cgi?id=354344 concat fails in subquery]
 +
* [https://bugs.eclipse.org/bugs/show_bug.cgi?id=246356 support inner joins in from clause]
 +
* [https://bugs.eclipse.org/bugs/show_bug.cgi?id=303268 expression order in jpql causes error]
 +
* [https://bugs.eclipse.org/bugs/show_bug.cgi?id=303767 join fetch ignored]
  
 
= Concepts =
 
= Concepts =

Revision as of 13:26, 4 October 2011

Design Specification: Enhanced JPQL

ER 312146

Feedback

Document History

Date Author Version Description & Notes
2011-10-04 James 0.1 Draft

Project overview

JPQL currently offers a sub-set of SQL functionality. Some queries that are possible using SQL cannot be defined using JPQL.

It is desired to make EclipseLink's JPQL support be more complete of what is possible in SQL.

A key requirement from users (#1 voted enhancement) is to have ON clause support in JPQL.

Other missing features of SQL could also be added to JPQL, such as sub selects in the SELECT from FROM clauses, and enhanced function support.

Other JPQL enhancements:

Other JPQL bugs:

Concepts

ON clause : the SQL clause part of the FROM clause that defines how to tables are joined, this can be used for both joins and outer joins, but is required for outer joins.

outer join : A join where if a row in the source table has no joined rows in the target table it is still included in the join result with a null row for the target table.

ANTRL : Third party library currently used in EclipseLink for parsing JPQL.

Hermes : New JPQL parser developed by Dali project for parsing JPQL at design time. Currently included in EclipseLink SVN, but not currently used.

Requirements

  • Support additional ON clause for a relationship join.
  • Support an ON clause on the join for two independent objects.

Design Constraints

  • Outer join capabilities differ in different databases.
  • SQL capabilities differ in different databases.

Functionality

Testing

API

Native API

Config files

Documentation

Open Issues

Issue # Owner Description / Notes
1 Which JPQL parser should be used ANTLR or Hermes?

Decisions

Issue Description / Notes Decision

Future Considerations

  • Other JPQL enhancements.