in api/v1/src/datasets/views/sqlBuilder.js [89:127]
async function generateSelectStatement(view, includeFrom) {
let source = view.source;
const visibleColumns = source.visibleColumns;
const hiddenColumns = source.hiddenColumns;
let sql = "";
if (visibleColumns && visibleColumns.length > 0) {
// Column selects
sql += "SELECT\n";
let i;
for (i = 0; i < visibleColumns.length; i++) {
if (i !== 0) {
// Not the last item in the collection
sql += ",\n";
}
sql += `\t${visibleColumns[i]}`;
}
}
else if (hiddenColumns && hiddenColumns.length > 0) {
sql += "SELECT *";
if (hiddenColumns.length > 0) {
sql += " EXCEPT (";
sql += hiddenColumns.join(", ");
sql += ")";
}
}
else {
// Use all columns
sql += "SELECT *";
}
if (includeFrom === true) {
sql += "\n";
sql += `FROM \`${view.projectId}.${source.datasetId}.${source.tableId}\` s`;
}
return sql;
}