This commit is contained in:
Jan Prochazka
2020-12-06 11:01:58 +01:00
parent 3bb22ddc36
commit fd2747d166
3 changed files with 45 additions and 25 deletions

View File

@@ -1,6 +1,7 @@
import { dumpSqlSelect, Select } from 'dbgate-sqltree';
import { EngineDriver } from 'dbgate-types';
import axios from '../utility/axios';
import _ from 'lodash';
import { extractDataColumns } from './DataChart';
export async function loadChartStructure(driver: EngineDriver, conid, database, sql) {
@@ -22,24 +23,11 @@ export async function loadChartStructure(driver: EngineDriver, conid, database,
export async function loadChartData(driver: EngineDriver, conid, database, sql, config) {
const dataColumns = extractDataColumns(config);
const { labelColumn } = config;
const { labelColumn, truncateFrom, truncateLimit } = config;
if (!labelColumn || !dataColumns || dataColumns.length == 0) return null;
const select: Select = {
commandType: 'select',
// columns:[
// {
// exprType:'call',
// func:'SUM',
// args: [
// {
// exprType: 'column',
// columnName,
// source: { alias: 'subq' },
// }
// ]
// }
// ],
columns: [
{
@@ -62,7 +50,7 @@ export async function loadChartData(driver: EngineDriver, conid, database, sql,
alias: columnName,
})),
],
topRecords: 500,
topRecords: truncateLimit || 100,
from: {
subQueryString: sql,
alias: 'subq',
@@ -74,10 +62,24 @@ export async function loadChartData(driver: EngineDriver, conid, database, sql,
columnName: labelColumn,
},
],
orderBy: [
{
exprType: 'column',
source: { alias: 'subq' },
columnName: labelColumn,
direction: truncateFrom == 'end' ? 'DESC' : 'ASC',
},
],
};
const dmp = driver.createDumper();
dumpSqlSelect(dmp, select);
const resp = await axios.post('database-connections/query-data', { conid, database, sql: dmp.s });
if (truncateFrom == 'end' && resp.data.rows) {
return {
...resp.data,
rows: _.reverse([...resp.data.rows]),
};
}
return resp.data;
}