fix(sqlbuilder): return build error from selector.statement#737
Open
Solaris-star wants to merge 1 commit into
Open
fix(sqlbuilder): return build error from selector.statement#737Solaris-star wants to merge 1 commit into
Solaris-star wants to merge 1 commit into
Conversation
selector.statement ignored build errors and dereferenced a nil selectorQuery, causing a nil pointer panic on invalid chains such as Select(...).As(...) without From. Match updater/deleter/inserter: surface the build error from statement and Compile. Fixes upper#708
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
selector.statement()discarded build errors:When build failed (e.g.
Select("id").As("alias")withoutFrom()),sqwas nil and callers likeString()/Compile()panicked with a nil pointer dereference instead of a clear error.Fix
Return
(*exql.Statement, error)fromselector.statement()(same shape as updater/deleter/inserter) and plumb the error throughCompile().String()still panics on error (existing package convention), but now with the real build error message.Test plan
go test ./internal/sqlbuilderFixes #708