feat(ui): support infix functions when building select statement from configuration
parent
54639f596d
commit
fbbee7cfe3
|
@ -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({
|
||||
|
|
Loading…
Reference in New Issue