in pkg/rules/databasesql/databasesql_extractor.go [170:195]
func extractConditions(expr sqlparser.Expr, values map[string]string) {
switch expr := expr.(type) {
case *sqlparser.ComparisonExpr:
if expr.Operator == "=" {
colName, ok := expr.Left.(*sqlparser.ColName)
if !ok {
return
}
valExpr, ok := expr.Right.(*sqlparser.SQLVal)
if !ok {
return
}
if valExpr.Type == sqlparser.StrVal {
values[colName.Name.String()] = string(valExpr.Val)
}
}
case *sqlparser.AndExpr:
extractConditions(expr.Left, values)
extractConditions(expr.Right, values)
case *sqlparser.OrExpr:
extractConditions(expr.Left, values)
extractConditions(expr.Right, values)
}
}