A relational expression is a
PlannerExpression
that represents a stream of records. At all times, the root
expression being planned must be relational. This interface acts as a common tag interface for
RecordQueryPlan
s, which can actually produce a stream of records,
and various logical relational expressions (not yet introduced), which represent an abstract stream of records but can't
be executed directly (such as an unimplemented sort). Other planner expressions such as
QueryComponent
and
KeyExpression
do not represent streams of records.