Lint relative-position name/@sqlfn mismatches#48
Merged
estebanzimanyi merged 1 commit intoJul 11, 2026
Conversation
A 1-D span or set reuses one MobilityDB-C position wrapper for both its value axis (left/right) and its time axis (before/after), and that wrapper carries a single @sqlfn. A time-axis MEOS-C function tagged @csqlfn #Left_span_value() therefore resolves to the value name `left`, so a binding emits left(tstzspan,...) instead of before(tstzspan,...). lint_ea_sqlfn catches the ever/always version of this copy-paste class; add the positional sibling: flag any relative-position function whose name prefix (before_/left_/...) disagrees with its resolved @sqlfn, and report it from run.py alongside the existing guards. The parser stays faithful — this only surfaces the source mistag.
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.
A 1-D span or set reuses one MobilityDB-C position wrapper for both its value axis (
left/right) and its time axis (before/after), and that wrapper carries a single@sqlfn. A time-axis MEOS-C function tagged@csqlfn #Left_span_value()therefore resolves to the value nameleft, and a binding emitsleft(tstzspan, ...)instead ofbefore(tstzspan, ...).lint_ea_sqlfnalready catches the ever/always version of this copy-paste class. This adds the positional siblinglint_positional_sqlfn: flag any relative-position function whose name prefix (before_/left_/…) disagrees with its resolved@sqlfn, and report it fromrun.pyalongside the existing guards.The parser stays faithful — this only surfaces the source mistag so it can be fixed at the tag/wrapper source (see MobilityDB/MobilityDB#1371, which resolves the current 48 occurrences; this guard then keeps the count at 0).