Branch: refs/heads/master
Home:
https://github.com/hibernate/hibernate-orm
Commit: d1119d320a96695341d102480648752a7208525b
https://github.com/hibernate/hibernate-orm/commit/d1119d320a96695341d1024...
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: 264e71a916ff27a97bfefea144a20895f7fc75e7
https://github.com/hibernate/hibernate-orm/commit/264e71a916ff27a97bfefea...
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: 423697026de10ed24c8d425b661425072926bfa0
https://github.com/hibernate/hibernate-orm/commit/423697026de10ed24c8d425...
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: 51730713222a088a960de3296b5053880b0bb0b9
https://github.com/hibernate/hibernate-orm/commit/51730713222a088a960de32...
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: 5daf440a6cd8e0ed115f33d0594cc19c88ccfa04
https://github.com/hibernate/hibernate-orm/commit/5daf440a6cd8e0ed115f33d...
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: 5b9ec29ecb689c7fddaeec42afeb72398aeb9a0a
https://github.com/hibernate/hibernate-orm/commit/5b9ec29ecb689c7fddaeec4...
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/59d40c3bf5bc...5b9ec29...