mirror of
https://github.com/grafana/grafana.git
synced 2025-09-23 18:52:33 +08:00
refactor SQL generation for value columns
This commit is contained in:
@ -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 += ', ';
|
||||||
|
Reference in New Issue
Block a user