refactor SQL generation for value columns

This commit is contained in:
Sven Klemm
2018-07-11 11:09:28 +02:00
parent 772825ed09
commit 5dd236bf05

View File

@ -206,6 +206,22 @@ export default class PostgresQuery {
return query; return query;
} }
buildValueColumns(target) {
let query = '';
for (let i = 0; i < this.selectModels.length; i++) {
let parts = this.selectModels[i];
var selectText = '';
for (let y = 0; y < parts.length; y++) {
let part = parts[y];
selectText = part.render(selectText);
}
query += ', ' + selectText;
}
return query;
}
buildQuery(target) { buildQuery(target) {
var query = 'SELECT '; var query = 'SELECT ';
@ -215,17 +231,7 @@ export default class PostgresQuery {
query += ',' + this.target.metricColumn + ' AS metric'; query += ',' + this.target.metricColumn + ' AS metric';
} }
var i, y; query += this.buildValueColumns(target);
for (i = 0; i < this.selectModels.length; i++) {
let parts = this.selectModels[i];
var selectText = '';
for (y = 0; y < parts.length; y++) {
let part = parts[y];
selectText = part.render(selectText);
}
query += ', ' + selectText;
}
query += ' FROM ' + target.schema + '.' + target.table; query += ' FROM ' + target.schema + '.' + target.table;
var conditions = _.map(target.where, (tag, index) => { var conditions = _.map(target.where, (tag, index) => {
@ -244,7 +250,7 @@ export default class PostgresQuery {
} }
var groupBySection = ''; var groupBySection = '';
for (i = 0; i < this.groupByParts.length; i++) { for (let i = 0; i < this.groupByParts.length; i++) {
var part = this.groupByParts[i]; var part = this.groupByParts[i];
if (i > 0) { if (i > 0) {
groupBySection += ', '; groupBySection += ', ';