private static int MakeupFunctions(PreparedQuerySelectColumns columnSet, IList<SqlExpression> aggregateFunctions, out SqlExpression[] defFunList, out string[] defFunNames)
{
// Make up the functions list,
var functionsList = columnSet.FunctionColumns.ToList();
int fsz = functionsList.Count;
var completeFunList = new List<object>();
for (int i = 0; i < fsz; ++i) {
var scol = functionsList[i];
completeFunList.Add(scol.Expression);
completeFunList.Add(scol.InternalName.Name);
}
for (int i = 0; i < aggregateFunctions.Count; ++i) {
completeFunList.Add(aggregateFunctions[i]);
completeFunList.Add("HAVINGAGG_" + (i + 1));
}
int fsz2 = completeFunList.Count / 2;
defFunList = new SqlExpression[fsz2];
defFunNames = new string[fsz2];
for (int i = 0; i < fsz2; ++i) {
defFunList[i] = (SqlExpression)completeFunList[i * 2];
defFunNames[i] = (string)completeFunList[(i * 2) + 1];
}
return fsz;
}