[hibernate-commits] [hibernate/hibernate-orm] 8089d8: HHH-13742 - Missing from clause with joined inheri...
Andrea Boriero
noreply at github.com
Mon Dec 2 05:24:16 EST 2019
Branch: refs/heads/wip/6.0
Home: https://github.com/hibernate/hibernate-orm
Commit: 8089d8c575f8262a094e8c2cfe8d67b9e9611ecb
https://github.com/hibernate/hibernate-orm/commit/8089d8c575f8262a094e8c2cfe8d67b9e9611ecb
Author: Jan-Willem Gmelig Meyling <jan-willem at youngmediaexperts.nl>
Date: 2019-11-21 (Thu, 21 Nov 2019)
Changed paths:
M hibernate-core/src/test/java/org/hibernate/query/hhh13670/HHH13670Test.java
Log Message:
-----------
HHH-13742 - Missing from clause with joined inheritance property in association subquery
Commit: 325239353e3ac6da1a37e9c2bf5b5a7215da223b
https://github.com/hibernate/hibernate-orm/commit/325239353e3ac6da1a37e9c2bf5b5a7215da223b
Author: Jan-Willem Gmelig Meyling <jan-willem at youngmediaexperts.nl>
Date: 2019-11-21 (Thu, 21 Nov 2019)
Changed paths:
M hibernate-core/src/main/java/org/hibernate/hql/internal/ast/util/JoinProcessor.java
M hibernate-core/src/test/java/org/hibernate/query/hhh13670/HHH13670Test.java
Log Message:
-----------
HHH-13742 - Preliminary fix for HHH-13742
Commit: 473566c50dc88f71624a6de9781cba06d75a3b95
https://github.com/hibernate/hibernate-orm/commit/473566c50dc88f71624a6de9781cba06d75a3b95
Author: Jan-Willem Gmelig Meyling <jan-willem at youngmediaexperts.nl>
Date: 2019-11-25 (Mon, 25 Nov 2019)
Changed paths:
M hibernate-core/src/test/java/org/hibernate/query/hhh13670/HHH13670Test.java
Log Message:
-----------
HHH-13742 - Added additional tests
Commit: bde7ca974be406cdc8327ba76d2a83d2654b4856
https://github.com/hibernate/hibernate-orm/commit/bde7ca974be406cdc8327ba76d2a83d2654b4856
Author: Jan-Willem Gmelig Meyling <jan-willem at youngmediaexperts.nl>
Date: 2019-11-25 (Mon, 25 Nov 2019)
Changed paths:
M hibernate-core/src/main/java/org/hibernate/persister/entity/AbstractEntityPersister.java
M hibernate-core/src/main/java/org/hibernate/persister/entity/SingleTableEntityPersister.java
A hibernate-core/src/test/java/org/hibernate/jpa/test/jointable/Address.java
A hibernate-core/src/test/java/org/hibernate/jpa/test/jointable/ManyToOneJoinTableTest.java
A hibernate-core/src/test/java/org/hibernate/jpa/test/jointable/Person.java
Log Message:
-----------
HHH-12895 - Extra LEFT JOIN generated with @ManyToOne and @JoinTable when projecting
on main entity id
Commit: 21e79125e601160101f1f27e1aea026ede9c36a9
https://github.com/hibernate/hibernate-orm/commit/21e79125e601160101f1f27e1aea026ede9c36a9
Author: Jan-Willem Gmelig Meyling <jan-willem at youngmediaexperts.nl>
Date: 2019-11-25 (Mon, 25 Nov 2019)
Changed paths:
M hibernate-core/src/main/antlr/hql-sql.g
M hibernate-core/src/main/java/org/hibernate/dialect/Dialect.java
M hibernate-core/src/main/java/org/hibernate/dialect/H2Dialect.java
M hibernate-core/src/main/java/org/hibernate/dialect/MySQLDialect.java
M hibernate-core/src/main/java/org/hibernate/dialect/PostgreSQL81Dialect.java
M hibernate-core/src/main/java/org/hibernate/hql/internal/ast/HqlSqlWalker.java
A hibernate-core/src/test/java/org/hibernate/query/GroupByAliasTest.java
M hibernate-testing/src/main/java/org/hibernate/testing/DialectChecks.java
Log Message:
-----------
HHH-9301 - Support select variable refs in group by for DBMS dialects that support it
While not strictly compliant with the SQL specification, the MySQL, PostgreSQL and H2 support the use of select aliases in the GROUP BY clause. An obvious benefit is that produced SQL queries will be easier to read, because complex select expressions from aggregrate queries will have to be included in the group by clause as well. These can now simply reference the aliases of the respective columns for the tuple element. However, there is also a functional difference. For function invocations that have parameterized arguments, the query optimizer can't guarantee the that the function result between the selection projection and grouping process are equal. This results in an error because a value is projected which is not grouped by. An example where this for example becomes relevant, is when parameterizing TimeScaleDB's [`time_bucket_gapfill()`](https://docs.timescale.com/latest/api#time_bucket_gapfill-examples) function.
For example, using `time_bucket_gapfill()` one might want to produce a criteria query that produces the following SQL:
```sql
SELECT
time_bucket_gapfill(?, time, ?, ?) AS ts,
avg(tg) as tg
FROM iaqmeasurement
GROUP BY ts
ORDER BY ts;
```
When the alias is not used as grouping value, the query will yield an error:
```sql
SELECT
time_bucket_gapfill(?, time, ?, ?) AS ts,
avg(tg) as tg
FROM iaqmeasurement
GROUP BY time_bucket_gapfill(?, time, ?, ?)
ORDER BY ts;
```
Of course the parameter values can just be stored in a CTE as well, but I think we should consider support for variable refs in group by for DBMS dialects that support it. This pull request implements the feature equivalently to how its currently done for order by clauses, and only enables the feature for known supported dialects (H2, PostgreSQL and MySQL - based on [https://stackoverflow.com/a/3841804/2104280](https://stackoverflow.com/a/3841804/2104280)).
Jira: https://hibernate.atlassian.net/browse/HHH-9301
Co-authored-by: Sayra Ranjha <S.S.Ranjha at student.tudelft.nl>
Commit: f08abf3628ea958d46f586a2b559db6447637157
https://github.com/hibernate/hibernate-orm/commit/f08abf3628ea958d46f586a2b559db6447637157
Author: Vlad Mihalcea <mihalcea.vlad at gmail.com>
Date: 2019-11-25 (Mon, 25 Nov 2019)
Changed paths:
M hibernate-core/src/main/java/org/hibernate/dialect/Oracle8iDialect.java
M hibernate-core/src/test/java/org/hibernate/test/queryhint/QueryHintTest.java
Log Message:
-----------
HHH-13608 Oracle8iDialect should use CASE_INSENSITIVE pattern matching when checking the statement type
Commit: d2865a54df67fe157591a7821e300e49967fa5a6
https://github.com/hibernate/hibernate-orm/commit/d2865a54df67fe157591a7821e300e49967fa5a6
Author: Andrea Boriero <andrea at hibernate.org>
Date: 2019-12-02 (Mon, 02 Dec 2019)
Changed paths:
M hibernate-core/src/main/java/org/hibernate/dialect/Dialect.java
M hibernate-core/src/main/java/org/hibernate/dialect/H2Dialect.java
M hibernate-core/src/main/java/org/hibernate/dialect/MySQLDialect.java
M hibernate-core/src/main/java/org/hibernate/dialect/Oracle8iDialect.java
M hibernate-core/src/main/java/org/hibernate/dialect/PostgreSQL81Dialect.java
M hibernate-core/src/main/java/org/hibernate/persister/entity/AbstractEntityPersister.java
M hibernate-core/src/main/java/org/hibernate/persister/entity/SingleTableEntityPersister.java
A hibernate-core/src/test/java/org/hibernate/jpa/test/jointable/Address.java
A hibernate-core/src/test/java/org/hibernate/jpa/test/jointable/ManyToOneJoinTableTest.java
A hibernate-core/src/test/java/org/hibernate/jpa/test/jointable/Person.java
A hibernate-core/src/test/java/org/hibernate/query/GroupByAliasTest.java
M hibernate-core/src/test/java/org/hibernate/query/hhh13670/HHH13670Test.java
M hibernate-core/src/test/java/org/hibernate/test/queryhint/QueryHintTest.java
M hibernate-testing/src/main/java/org/hibernate/testing/DialectChecks.java
Log Message:
-----------
Merge remote-tracking branch 'upstream5/master' into wip/6.0_merge_15
Commit: f836689be8c7d4b66812bd0ef8c1c81ef815bf5e
https://github.com/hibernate/hibernate-orm/commit/f836689be8c7d4b66812bd0ef8c1c81ef815bf5e
Author: Andrea Boriero <andrea at hibernate.org>
Date: 2019-12-02 (Mon, 02 Dec 2019)
Changed paths:
M hibernate-core/src/test/java/org/hibernate/jpa/test/jointable/ManyToOneJoinTableTest.java
Log Message:
-----------
Fix merge errors
Compare: https://github.com/hibernate/hibernate-orm/compare/75d436ab25ef...f836689be8c7
More information about the hibernate-commits
mailing list