diff --git a/ui/src/utils/influxql.ts b/ui/src/utils/influxql.ts index da946af98..2448cb275 100644 --- a/ui/src/utils/influxql.ts +++ b/ui/src/utils/influxql.ts @@ -51,7 +51,7 @@ export function buildSelect( } const rpSegment = retentionPolicy ? `"${retentionPolicy}"` : '' - const fieldsClause = buildFields(fields, shift) + const fieldsClause = buildFields(fields, shift).join(', ') const fullyQualifiedMeasurement = `"${database}".${rpSegment}."${measurement}"` const statement = `SELECT ${fieldsClause} FROM ${fullyQualifiedMeasurement}` return statement @@ -89,9 +89,9 @@ export function buildSelectStatement(config: QueryConfig): string { return buildSelect(config) } -function buildFields(fieldFuncs: Field[], shift = '', useAlias = true): string { +function buildFields(fieldFuncs: Field[], shift = '', useAlias = true): string[] { if (!fieldFuncs) { - return '' + return [] } return fieldFuncs @@ -119,11 +119,15 @@ function buildFields(fieldFuncs: Field[], shift = '', useAlias = true): string { case 'func': { const args = buildFields(f.args, '', false) const alias = f.alias ? ` AS "${f.alias}${shift}"` : '' - return `${f.value}(${args})${alias}` + return `${f.value}(${args.join(', ')})${alias}` + } + case 'infixfunc': { + const args = buildFields(f.args, '', false) + const alias = f.alias ? ` AS "${f.alias}"` : '' + return `${args[0]}${f.value}${args[1]}${alias}` } } }) - .join(', ') } export function buildWhereClause({