func extractConditions()

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)
	}
}