A source of strings unique within F[_]
, an implementation must have the
property that, if Applicative[F], then (freshName |@| freshName)(_ != _).
Describes a function that expands a compound value into a set of values for an operation.
Describes a function that each individual value.
Describes a function that reduces a set of values to a single value.
Describes a function that operates on the set containing values, not modifying individual values.
Describes a function that operates on the set containing values, not modifying individual values. (EG, filter, sort, take)
Describes a function that compresses the identity information.
Describes a function that operates on the set containing values, potentially modifying individual values.
Describes a function that operates on the set containing values, potentially modifying individual values. (EG, joins).
Optimizes and typechecks a LogicalPlan
returning the improved plan or
just a list of results, if the query was foldable to a constant.
Here we no longer care about provenance.
Here we no longer care about provenance. Backends can’t do anything with it, so we simply represent joins and crosses directly. This also means that we don’t need to model certain things – project_d is just a data-level function, nest_d & swap_d only modify provenance and so are irrelevant here, and autojoin_d has been replaced with a lower-level join operation that doesn’t include the cross portion.
Returns the LogicalPlan
for the given SQL^2 query, or a list of
results, if the query was foldable to a constant.