rql #83202 Typing OR clauses not as expected [open]
generic_rel is quite generic a relation which can link a CWUser for example to pretty anything ( '*' in the schema). The problematic RQL request looks like
SET U generic_rel X WHERE ... , A rel1 X OR B rel2 X
where the ... introduces the A and B variables and the rel1 and rel2 relations actually have distinct objet types.
The error raised is
TypeResolverException: Unable to resolve variables types in [...]
The point is that the type system associate one type variable to the X symbol, thus leading to a unification error. Said otherwise, the algorithm does not introduce union/sum types.
I would have expected the following semantics
SET U generic_rel X0 WHERE ... , A rel1 X1 OR B rel2 X2
With X1 typed T1 according to rel1, X2 T2 according to rel2 and X0 as (T1 | T2).
Or in an equivalent way
SET U generic_rel X1 WHERE ... , A rel1 X1 SET U generic_rel X2 WHERE ... , B rel2 X2
NB: This is an "unexpected behaviour" kind of report. It is yet undecided whether this should become an improvement ticket for RQL capabilities or for the documentation of its desired limitations.
|done in||<not specified>|
|closed by||<not specified>|