Function sql::plan::query::plan_view_select [−][src]
fn plan_view_select(
qcx: &QueryContext<'_>,
s: Select<Aug>,
order_by_exprs: Vec<OrderByExpr<Aug>>
) -> Result<SelectPlan, PlanError>
Expand description
Plans a SELECT query with an intrusive ORDER BY clause.
Normally, the ORDER BY clause occurs after the columns specified in the SELECT list have been projected. In a query like
CREATE TABLE (a int, b int) (SELECT a FROM t) UNION (SELECT a FROM t) ORDER BY a
it is valid to refer to a
, because it is explicitly selected, but it would
not be valid to refer to unselected column b
.
But PostgreSQL extends the standard to permit queries like
SELECT a FROM t ORDER BY b
where expressions in the ORDER BY clause can refer to both input columns and output columns.
This function handles queries of the latter class. For queries of the
former class, see plan_view_select
.