Fixes #1038: type cast fails in select_min/max #1040
Merged
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.
Fixes #1038 .
Basically, when we are doing a PG:something -> SomethingElse conversion, it usually works as long as you can cast safely from one another.
Eg: 1 (PG::Int) can be cast to int with .as(Int). Same for strings
However that is not the case for Numeric values - for them the simple .as(Float) does not work - but we need to get through the .to_f method.
This pull request does exactly this, it adds one new method (to_expected_type) with one overload in the specific case of the input being a PG::numeric.
It also fixes the select_max, which was having the same issue