Repository navigation
feat: record unmapped column types until a query uses them - #43
Merged
Merged
Conversation
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.
Summary
A schema that declares a column sqlcj cannot map to Java, such as
JSONB,DOUBLE PRECISION, or any array, no longer fails as a whole. The column isrecorded with its declared type, and only a query that actually uses it fails,
naming the query, the column, and the type, so every other query over the same
table keeps compiling.
Changes
spelling (upper case, type arguments removed) followed by
[]per arraydimension, for example
JSONB,VARCHAR[]forvarchar(20)[], andINTEGER[][]. Nullability is parsed as before. Array columns werepreviously modeled as their element type; they are now recorded as
unsupported.
Column '<name>' has unsupported type <type>whena query reads such a column (
SELECTorRETURNINGitem), binds it (aplaceholder in a comparison,
INlist,BETWEENbound,LIKE/ILIKEpattern,
INSERTcolumn, orUPDATEassignment), or expands it (SELECT *,SELECT qualifier.*,RETURNING *).sqlcj generatereports it asInvalid query '<name>' in <file> at line <n>: ...and writes no output.IS NULLor a joinONequality, compile, and queries that do not touch the column produce thesame generated code as before.
new diagnostic.
Scope and non-goals
JSONB, and other unmapped typesstill have no generated Java type.
fail as before.