Branch: refs/heads/5.4
Home:
https://github.com/hibernate/hibernate-orm
Commit: 564c05a65a5cbd72dbda393aa62282e3e639a508
https://github.com/hibernate/hibernate-orm/commit/564c05a65a5cbd72dbda393...
Author: Gavin King <gavin(a)hibernate.org>
Date: 2020-08-27 (Thu, 27 Aug 2020)
Changed paths:
M hibernate-core/src/main/java/org/hibernate/hql/internal/ast/HqlSqlWalker.java
M
hibernate-core/src/main/java/org/hibernate/hql/internal/ast/QueryTranslatorImpl.java
M hibernate-core/src/main/java/org/hibernate/hql/internal/ast/exec/BasicExecutor.java
Log Message:
-----------
HHH-14153 optimize away temp table for single-table HQL update
When a HQL bulk update query only touches a single table,
use BasicExecutor instead of MultiTableUpdateExecutor.
This is an alternate implementation to the one proposed by
@NathanQingyangXu in #3508 and loosely based on that work.
Commit: f182b3b366e04c9d3ce94d71eee0cf16784bee72
https://github.com/hibernate/hibernate-orm/commit/f182b3b366e04c9d3ce94d7...
Author: Gavin King <gavin(a)hibernate.org>
Date: 2020-08-27 (Thu, 27 Aug 2020)
Changed paths:
M
hibernate-core/src/main/java/org/hibernate/hql/internal/ast/QueryTranslatorImpl.java
M hibernate-core/src/main/java/org/hibernate/hql/internal/ast/exec/BasicExecutor.java
M
hibernate-core/src/main/java/org/hibernate/hql/internal/ast/exec/DeleteExecutor.java
A
hibernate-core/src/main/java/org/hibernate/hql/internal/ast/exec/InsertExecutor.java
A
hibernate-core/src/main/java/org/hibernate/hql/internal/ast/exec/UpdateExecutor.java
Log Message:
-----------
HHH-14153 clean up BasicExecutor and friends
introduces InsertExecutor and UpdateExecutor since we're
going to be introducing specific optimizations relating
to single-table updates
relates to HHH-14153
Commit: 9dd2d94afba91734ab6e22f2f834acc12082dd23
https://github.com/hibernate/hibernate-orm/commit/9dd2d94afba91734ab6e22f...
Author: Gavin King <gavin(a)hibernate.org>
Date: 2020-08-27 (Thu, 27 Aug 2020)
Changed paths:
M
hibernate-core/src/main/java/org/hibernate/hql/internal/ast/QueryTranslatorImpl.java
M hibernate-core/src/main/java/org/hibernate/hql/internal/ast/exec/BasicExecutor.java
A
hibernate-core/src/main/java/org/hibernate/hql/internal/ast/exec/IdSubselectUpdateExecutor.java
M
hibernate-core/src/main/java/org/hibernate/hql/internal/ast/exec/InsertExecutor.java
A
hibernate-core/src/main/java/org/hibernate/hql/internal/ast/exec/SimpleUpdateExecutor.java
R
hibernate-core/src/main/java/org/hibernate/hql/internal/ast/exec/UpdateExecutor.java
M
hibernate-core/src/main/java/org/hibernate/hql/spi/id/TableBasedUpdateHandlerImpl.java
Log Message:
-----------
HHH-14153 further optimization for single-table HQL update
This extends the optimization for single-table HQL bulk
updates to the case where the where clause touches multiple
tables and we can use a subselect to collect the ids that
we need to update.
Commit: 6e9b488ec16874c9406215fb470e769250668b95
https://github.com/hibernate/hibernate-orm/commit/6e9b488ec16874c9406215f...
Author: Gavin King <gavin(a)hibernate.org>
Date: 2020-08-27 (Thu, 27 Aug 2020)
Changed paths:
A
hibernate-core/src/test/java/org/hibernate/test/joinedsubclass/SingleTableUpdateQueryTest.java
Log Message:
-----------
HHH-14153 add test
By NathanQingyangXu
See
https://github.com/hibernate/hibernate-orm/pull/3508
Commit: a49795549a2c7549cc8cfdcb11e9537c18872325
https://github.com/hibernate/hibernate-orm/commit/a49795549a2c7549cc8cfdc...
Author: Gavin King <gavin(a)hibernate.org>
Date: 2020-08-27 (Thu, 27 Aug 2020)
Changed paths:
M
hibernate-core/src/main/java/org/hibernate/hql/internal/ast/QueryTranslatorImpl.java
Log Message:
-----------
HHH-14153 Make buildAppropriateStatementExecutor() protected
Hibernate Reactive might ultimately need to override
this method, though it doesn't right now.
Relates to HHH-14153.
Commit: 55b46f185530189c01104c5f0bfbfd661ac2b900
https://github.com/hibernate/hibernate-orm/commit/55b46f185530189c01104c5...
Author: Gavin King <gavin(a)hibernate.org>
Date: 2020-08-27 (Thu, 27 Aug 2020)
Changed paths:
M hibernate-core/src/main/java/org/hibernate/hql/internal/ast/exec/BasicExecutor.java
M
hibernate-core/src/main/java/org/hibernate/hql/internal/ast/exec/DeleteExecutor.java
M
hibernate-core/src/main/java/org/hibernate/hql/internal/ast/exec/IdSubselectUpdateExecutor.java
M
hibernate-core/src/main/java/org/hibernate/hql/internal/ast/exec/InsertExecutor.java
M
hibernate-core/src/main/java/org/hibernate/hql/internal/ast/exec/SimpleUpdateExecutor.java
M
hibernate-core/src/main/java/org/hibernate/hql/spi/id/AbstractTableBasedBulkIdHandler.java
Log Message:
-----------
HHH-14153 refactoring after HHH-14153
- avoid use package-scoped instance felds
- remove copy/pasted code
Note: I don't hate package-scoped final fields, but I
know other folks tend to. So let's go with template
methods instead.
Compare:
https://github.com/hibernate/hibernate-orm/compare/b1dea1b17a2b...55b46f1...