func()

in dao/feature_view_hologres_dao.go [522:547]


func (v *Visitor) ConvertToSql(node *ast.BinaryNode) string {
	if node == nil {
		return ""
	}
	if node.Operator != "&&" && node.Operator != "||" {
		op := node.Operator
		if op == "==" {
			op = "="
		}
		if leftNode, ok := node.Left.(*ast.IdentifierNode); ok {
			return fmt.Sprintf("%s %s '%s'", leftNode, op, strings.ReplaceAll(node.Right.String(), "\"", ""))
		} else {
			return fmt.Sprintf("'%s' %s %s", strings.ReplaceAll(node.Left.String(), "\"", ""), op, node.Right.String())
		}

	} else if node.Operator == "&&" {
		left := v.ConvertToSql(node.Left.(*ast.BinaryNode))
		right := v.ConvertToSql(node.Right.(*ast.BinaryNode))
		return fmt.Sprintf("(%s) and (%s)", left, right)
	} else if node.Operator == "||" {
		left := v.ConvertToSql(node.Left.(*ast.BinaryNode))
		right := v.ConvertToSql(node.Right.(*ast.BinaryNode))
		return fmt.Sprintf("(%s) or (%s)", left, right)
	}
	return ""
}