Fix distinguishing the joined geospatial types for ST_KNN#87
Merged
Kontinuation merged 2 commits intoapache:mainfrom Sep 16, 2025
Merged
Fix distinguishing the joined geospatial types for ST_KNN#87Kontinuation merged 2 commits intoapache:mainfrom
Kontinuation merged 2 commits intoapache:mainfrom
Conversation
Contributor
There was a problem hiding this comment.
Pull Request Overview
This PR fixes a regression in geospatial type checking for ST_KNN operations by correctly mapping left/right expressions to query plans based on the probe_side field. The previous implementation incorrectly assumed a direct mapping between left/right expressions and schema positions.
- Changes error handling from boolean returns to Result types for better error propagation
- Adds proper probe_side consideration when validating KNN predicates to ensure correct schema-to-expression mapping
- Includes comprehensive test coverage for the fixed KNN predicate validation logic
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
ad08ba5 to
4df5308
Compare
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.
This PR fixes a regression introduced by #57, which added geography type checking to prevent optimized spatial joins from being used with unsupported geography types.
The problematic patch incorrectly matches
leftandrightexpressions inKNNPredicateto query plans. Actually, howleftandrightmaps to the original query plans depends on the value ofprobe_sidefield. This is quite misleading and may be addressed in a future PR by renamingleftandrighttobuildandprobe.The function for checking if geospatial types are supported now returns
Result<bool>to propagate errors during the field type extraction and matching process. This prevents silent matching failures due to bugs from happening.