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]

Reply via email to