The GitHub Actions job "CI" on grails-core.git/8.0.x has succeeded.
Run started by GitHub user borinquenkid (triggered by borinquenkid).

Head commit for run:
54ea20836a9725b4bcc76acc07987e27a7bc89a2 / Walter B Duque de Estrada 
<[email protected]>
fix(grails-data-hibernate7): make type: 'text' produce an unbounded column 
(#16020)

* fix(grails-data-hibernate7): make type: 'text' produce an unbounded column

property type: 'text' resolved through Hibernate's legacy named-type
lookup to StandardBasicTypes.TEXT, whose JDBC type code is the legacy
java.sql.Types.LONGVARCHAR. Dialects (e.g. Postgres) don't render that
legacy code as their native unbounded text/CLOB type, falling back to a
bounded VARCHAR at Hibernate's generic Length.LONG default (32600) once
no explicit column length is set. On schema update, altering an existing
column down to that bound fails once any row already holds more text.

Bind the modern SqlTypes.LONG32VARCHAR JDBC type directly for this case
instead of going through the ambiguous legacy type name, restoring the
"CLOB or TEXT depending on dialect" behavior the mapping DSL docs already
promise for type: 'text'.

Fixes #16010

Co-Authored-By: Claude Sonnet 5 <[email protected]>

* fix(grails-data-hibernate7): resolve type 'text' length via dialect-neutral 
Length.LONG32

Address PR review feedback on the type: 'text' unbounded-column fix: instead of
overriding the JDBC type descriptor with SqlTypes.LONG32VARCHAR, set the 
column's
length to Hibernate 6+'s documented Length.LONG32 sentinel and let each 
dialect's
own capacity-dependent DDL type registry resolve the native unbounded type 
(text,
longtext, CLOB). This composes correctly with maxSize/inList/explicit column
length instead of racing them, and keeps SimpleValueBinder as a pure 
orchestrator -
the length decision now lives in StringColumnConstraintsBinder, which already 
owns
string column length for maxSize/inList.

Extends test coverage to close the "Postgres-only" gap: adds an H2-based spec 
that
runs without Docker so container-less CI still exercises this path, and extends 
the
Testcontainers spec to MySQL and MariaDB (Oracle excluded, matching the 
flaky-in-CI
precedent already established in RLikeHibernate7Spec). Reverting the fix locally
confirmed MySQL/MariaDB were independently affected (TEXT capped at 65535), not
just Postgres.

Co-Authored-By: Claude Sonnet 5 <[email protected]>

* docs: clarify type: 'text' resolves to the dialect's own unbounded column

Addresses review feedback on #16020 asking to document that GORM
computes the concrete SQL type (text/longtext/CLOB) per dialect rather
than emitting a literal "text" type, and that every Hibernate-shipped
Dialect defines this mapping.

Co-Authored-By: Claude Sonnet 5 <[email protected]>

---------

Co-authored-by: Claude Sonnet 5 <[email protected]>

Report URL: https://github.com/apache/grails-core/actions/runs/31956875300

With regards,
GitHub Actions via GitBox

Reply via email to