borinquenkid commented on PR #16583:
URL: https://github.com/apache/grails-core/pull/16583#issuecomment-6537946935
Addressed the Round 5 review feedback in f7cda459a3:
1. **H2 Compatibility Mode Alignment via Core Enums**:
- Added `DatabasePlatform` enum in `grails-datastore-core` encapsulating
canonical database platforms and their null uniqueness semantics (`uniqueNulls`
and `entirelyNullKeyExempt`).
- Added `H2Mode` enum in `grails-datastore-core` mapping H2 compatibility
modes directly to their native target platform (`MODE=Oracle` ->
`DatabasePlatform.ORACLE`, `MODE=MSSQLServer` -> `DatabasePlatform.SQL_SERVER`,
`MODE=Derby` -> `DatabasePlatform.DERBY`, etc.).
- Updated `UniqueNullsPerDialect` in both Hibernate 7 and Hibernate 5 to
accept `(Dialect, String jdbcUrl)` and delegate H2 dialect mode resolution to
`DatabasePlatform.resolveForH2(jdbcUrl)`. `MODE=Oracle` enforces `VALUE` with
`entirelyNullKeyExempt = true`, while `MODE=MSSQLServer` and `MODE=Derby`
enforce `VALUE` with `entirelyNullKeyExempt = false`.
- Updated `HibernateDatastore` (H7) and `AbstractHibernateDatastore` (H5)
to pass the configured `jdbcUrl` into dialect resolution.
2. **Collection Uniqueness Group Handling**:
- Expanded `Property.setUnique(Map options)` to handle `Collection<?>`,
`Iterable<?>`, and `Object[]` for the `group` key, preventing `Set` instances
from falling through to single-column uniqueness.
3. **Upgrade Documentation**:
- Renumbered the upgrade note in `upgrading90x.adoc` to section 21 after
merging `origin/9.0.x`.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]