@API(value=EXPERIMENTAL) public interface NestedContext
NestedContext
is defined by a single FieldKeyExpression
and represents a relative nesting within
the internal state of the query planner. Various objects that the query planner uses, such as
PlannerExpression
s and KeyExpressionComparisons
, can be nestedand unnested relative
to a NestedContext
, allowing most query planner rules to ignore the complexities of dealing with queries on
nested record structures. The NestedContext
itself tracks the properties of the nested field and provides
a variety of convenience methods for simplifying the implementation of the asNestedWith()
and
asUnnestedWith()
on various planner-related classes.Modifier and Type | Method and Description |
---|---|
default ExpressionRef<QueryComponent> |
getNestedQueryComponent(ExpressionRef<QueryComponent> ref) |
default ExpressionRef<RelationalPlannerExpression> |
getNestedRelationalPlannerExpression(ExpressionRef<RelationalPlannerExpression> ref) |
FieldKeyExpression |
getParentField() |
default ExpressionRef<QueryComponent> |
getUnnestedQueryComponent(ExpressionRef<QueryComponent> ref) |
default ExpressionRef<RelationalPlannerExpression> |
getUnnestedRelationalPlannerExpression(ExpressionRef<RelationalPlannerExpression> ref) |
boolean |
isParentFieldFannedOut() |
@Nonnull FieldKeyExpression getParentField()
boolean isParentFieldFannedOut()
@Nullable default ExpressionRef<RelationalPlannerExpression> getNestedRelationalPlannerExpression(@Nonnull ExpressionRef<RelationalPlannerExpression> ref)
@Nullable default ExpressionRef<QueryComponent> getNestedQueryComponent(@Nonnull ExpressionRef<QueryComponent> ref)
@Nullable default ExpressionRef<RelationalPlannerExpression> getUnnestedRelationalPlannerExpression(@Nonnull ExpressionRef<RelationalPlannerExpression> ref)
@Nullable default ExpressionRef<QueryComponent> getUnnestedQueryComponent(@Nonnull ExpressionRef<QueryComponent> ref)