for (Term inputTable : inputTables) {
// add input tables to {@link results} so that they get borders
// also add labels with column names
// TODO refactor this and move to QuietSpreadsheetLayout
Result result = inputTable.execute();
ColumnLabels labels = result.getLabels();
String tableName = tableNamesIter.next();
ColumnNamesImpl cn = databaseSchema.schemaTable(tableName);
ColumnIndexesImpl ci = cn.asColumnIndexesLookup();
Iterator<SimpleColumn> scs = ci.iterator();
for (Column c : result.getResultRelation()) {
SimpleColumn sc = scs.next();
labels.put(c, tableName+"."+sc.name());
}
results.add(result);
}
// add the SQL query to the comments for the result columns
// TODO add column name or expression
// TODO add only one formula's sql code, not all sql formulas' codes
// TODO make sure the comment is wide enough so that no wrapping occurs
String sourceComment = "|--SQL query:\n"+sqlSource;
sourceComment = sourceComment.replace("\n", "\n| ");
for (Term formula : formulas) {
// TODO refactor this and move to QuietSpreadsheetLayout
Result result = formula.execute();
ColumnLabels labels = result.getLabels();
Relation resultRelation = result.getResultRelation();
for (Column col : resultRelation) {
labels.put(col, sourceComment);
}
results.add(result);
}
// TODO move the following inner try block outside the outer try block