Support SQL large-object names through shared column type parsing - #2617
Merged
manticore-projects merged 1 commit intoSep 12, 2026
Merged
Conversation
Contributor
|
Thank you for supporting H2! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
EvoMaster works around
CHARACTER LARGE OBJECTin H2 conditions by replacing the type name withVARCHARbefore parsing. Its conversion code notes that a global replacement can also change literal contents. The original condition withCAST('hi' AS CHARACTER LARGE OBJECT(2))currently fails atLARGE.Add a shared large-object type-name production to
ColDataType, preserving the complete name and existing length properties across CAST, CREATE/ALTER column definitions andparseColDataType. It handles CHARACTER/CHAR/NCHAR LARGE OBJECT, NATIONAL CHARACTER LARGE OBJECT and BINARY LARGE OBJECT using contextual tokens and the existing suffix parser. These names are documented in the H2 type reference.Tests cover the downstream condition, structured type and length fields, expression traversal, round trips, comments/whitespace, unchanged literal contents and nearby existing type names. No source-text preprocessing is needed.
Validation: Java 17
./gradlew --console=plain --max-workers=2 check, including the complete test suite, JavaCC choice-conflict gate, Checkstyle, PMD, SpotBugs and Spotless.