private IQueryPlanNode EvaluateToSingle(PreparedQuerySelectColumns columns)
{
if (columns.AggregateCount > 0)
throw new InvalidOperationException("Invalid use of aggregate function in select with no FROM clause");
// Make up the lists
var selectedColumns = columns.SelectedColumns.ToList();
int colCount = selectedColumns.Count;
var colNames = new string[colCount];
var expList = new SqlExpression[colCount];
var subsetVars = new ObjectName[colCount];
var aliases1 = new ObjectName[colCount];
for (int i = 0; i < colCount; ++i) {
SelectColumn scol = selectedColumns[i];
expList[i] = scol.Expression;
colNames[i] = scol.InternalName.Name;
subsetVars[i] = scol.InternalName;
aliases1[i] = scol.ResolvedName;
}
return new SubsetNode(new CreateFunctionsNode(new SingleRowTableNode(), expList, colNames), subsetVars, aliases1);
}