SVN commit trunk: bug#219814 JPQL enhancements
Fixed several of the issues related to unnecessary restrictions put on
our JPQL support,
Code review: Andrei
Changes:
- Allowed _expression_ inheritance view tests to run on all platforms, as
it supported now and should work.
- Updated JPQL grammar to remove restrictions,
- functions and math
operators in select and inside functions, aggregate functions, and constructors
(select UPPER(e.firstName) from Employee e)
- select without reference
to alias (select 1 from Employee e)
- functions in order by,
booleans in order by (select e from Employee e order by UPPER(e.lastName))
- functions in group by, having
(select e, COUNT(p) FROM Employee e JOIN e.projects p group by e having
COUNT(p) >= 2)
- functions in like,
between, in (select e from Employee e where UPPER(e.firstName) like UPPER('b%'))
- raise syntax error when
invalid characters are used (select e from Employee e where !(e.id = 12345))
- JPQL tests for new syntax
- Changed like to be a function instead of relation _expression_, allows avoiding
conversion of type to local base
- Some micro
- Allow JPQL ordering by booleans or any basic type
- Auto convert to string in in-memory like conforming
- Convert JPQL select variables to lower case in index (as all other variables)
- Allow usage of alias without reference
- Change constructor queries to find any constructor taking compatible
types (instead of exact types)