fix(qa): ISSUE-002 — 修复 parseExpression {field} 占位符残留 SQL 语法错误
当衍生指标表达式引用未在 indicators 中勾选的字段时,
原代码返回 {fieldCode} 占位符,导致生成的 SQL 包含大括号语法错误。
改为始终返回裸 fieldCode,避免 SQL 错误。
This commit is contained in:
@@ -360,6 +360,8 @@ func (b *SQLBuilder) buildTimeGroupExpr(dateField, timeGroup string) string {
|
||||
}
|
||||
|
||||
// parseExpression 解析衍生指标表达式
|
||||
// 将 {fieldCode} 占位符替换为原始字段名,当字段不在 indicators 中时仍返回 fieldCode
|
||||
// 避免未替换的 {fieldCode} 占位符泄漏到 SQL 中导致语法错误
|
||||
func (b *SQLBuilder) parseExpression(expr string, indicators []model.IndicatorSelect) string {
|
||||
re := regexp.MustCompile(`\{([^}]+)\}`)
|
||||
return re.ReplaceAllStringFunc(expr, func(match string) string {
|
||||
@@ -369,7 +371,8 @@ func (b *SQLBuilder) parseExpression(expr string, indicators []model.IndicatorSe
|
||||
return fieldCode
|
||||
}
|
||||
}
|
||||
return match
|
||||
// 字段不在 indicators 中也返回裸字段名(避免 {fieldCode} 残留 SQL 导致语法错误)
|
||||
return fieldCode
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user