The standard does not allow to use range variables, declared in the FROM clause, in the DEFINE clause (19075-5 6.5). Attached patch raises an error in this case.
Agreed. §6.5 is explicit about mutual exclusivity of the two sets of range variables. Your patch is correct for this case.
Also, currently we do not support pattern variable range vars in the DEFINE caluse (e.g. UP.price). If used, we see a confusing error message:
ERROR: missing FROM-clause entry for table "UP" LINE 13: UP AS UP.price > PREV(price), ^
Pattern variable qualified names like `UP.price` are actually valid standard syntax (§4.16 uses them in examples), so "is not allowed" is misleading — "is not supported" would be more accurate.
To distinguish the two cases, we could expose `patternVarNames` via ParseState (it is already collected by `validateRPRPatternVarCount` before DEFINE expressions are transformed) and check in `transformColumnRef` whether the qualifier is a pattern variable: