case classInContext(from: List[FromContext]) extends Product with Serializable
Simple utility that checks if if an AST entity refers to a entity. It traverses
through the context types to find out what kind of context a variable refers to.
For example, in a query like:
SELECT h.id FROM human h WHERE EXISTS (SELECT r.* FROM robot r WHERE r.friend = h.id)
the field r.friend is selected from a sub-query of an SQL operation (i.e. EXISTS (...))
so a from-context of it will not exist at all.
When deciding which properties to treat as sub-select properties (e.g. if we want to make sure NOT
to apply a naming-schema on them) we need to take care to understand that we may not know the
FromContext that a property comes from since it may not exist.
Linear Supertypes
Serializable, Serializable, Product, Equals, AnyRef, Any
Simple utility that checks if if an AST entity refers to a entity. It traverses through the context types to find out what kind of context a variable refers to. For example, in a query like:
Yielding SQL like this:
the inner p.a and p.b will have a TableContext while the outer p.b and p.a will have a QueryContext.
Note that there are some cases where the id of a field is not in a FromContext at all. For example, in a query like this:
Where the sql produced is something like this:
the field
r.friend
is selected from a sub-query of an SQL operation (i.e.
EXISTS (...)) so a from-context of it will not exist at all. When deciding which properties to treat as sub-select properties (e.g. if we want to make sure NOT to apply a naming-schema on them) we need to take care to understand that we may not know the FromContext that a property comes from since it may not exist.