parseCondition parses a SQL condition expression by wrapping it in a SELECT.
(sql string)
| 133 | |
| 134 | // parseCondition parses a SQL condition expression by wrapping it in a SELECT. |
| 135 | func parseCondition(sql string) (ast.Expression, error) { |
| 136 | stmt, err := parseSQL("SELECT * FROM _t WHERE " + sql) |
| 137 | if err != nil { |
| 138 | return nil, fmt.Errorf("parse condition %q: %w", sql, err) |
| 139 | } |
| 140 | |
| 141 | sel, ok := stmt.(*ast.SelectStatement) |
| 142 | if !ok || sel.Where == nil { |
| 143 | return nil, fmt.Errorf("parse condition %q: failed to extract WHERE", sql) |
| 144 | } |
| 145 | |
| 146 | return sel.Where, nil |
| 147 | } |
| 148 | |
| 149 | // parseJoinClause parses a JOIN clause from SQL by wrapping it in a SELECT. |
| 150 | func parseJoinClause(sql string) (*ast.JoinClause, error) { |
no test coverage detected