Repository navigation
Conversation
protoToRange decodes the facet range refinements returned by the search service. Its two ParseFloat checks are inverted: each bound is assigned only when parsing fails, so a valid bound is discarded and left at the infinite default, while an empty or malformed bound is kept as 0. A refinement that should decode to 1.5..3 comes back as -Inf..+Inf, and a half-open range picks up a spurious 0 endpoint. Use err == nil so finite bounds are decoded and absent bounds keep their infinity sentinel. The v2 copy has the same bug.
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.
protoToRange decodes the facet range refinements returned by the search service, but its two error checks are inverted: each bound is assigned only when strconv.ParseFloat returns an error, so a valid bound is discarded and left at the infinite default while an empty or malformed one is kept as 0. Facets() returns these Range values to the app, so a refinement that should decode to 1.5..3 comes back as -Inf..+Inf, and a half-open range picks up a spurious 0 endpoint. Flipping both checks to err == nil decodes finite bounds and leaves absent bounds at their infinity sentinel; the v2 copy has the same bug and fix, and both modules get a regression test.