opt: fix st_distance -> st_dwithin rule to cast distance param as float #54366
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.
Release justification: low-risk updates to new functionality
This commit fixes an error that could occur when the normalization rule was
applied that converts
st_distance(g1, g2) <= d
tost_dwithin(g1, g2, d)
.The error occurred when
d
, the distance parameter, was some type other thanfloat
. Sincest_dwithin
requires the distance parameter to have typefloat
,this commit fixes the problem by casting the parameter to type
float
.Fixes #54326
Release note (bug fix): fixed an internal error and/or panic that could occur
when the ST_Distance or ST_MaxDistance functions were compared against a
constant or variable with any type other than float. For example, previously,
a query with the predicate
WHERE ST_Distance(g1, g2) < 10::int
could cause anerror.