TestParser_ComplexQuery tests parsing complex queries
(t *testing.T)
| 266 | |
| 267 | // TestParser_ComplexQuery tests parsing complex queries |
| 268 | func TestParser_ComplexQuery(t *testing.T) { |
| 269 | complexQueries := []string{ |
| 270 | "SELECT u.name, COUNT(o.id) FROM users u LEFT JOIN orders o ON u.id = o.user_id GROUP BY u.name", |
| 271 | "WITH temp AS (SELECT id FROM users) SELECT * FROM temp", |
| 272 | "SELECT name, ROW_NUMBER() OVER (ORDER BY salary DESC) FROM employees", |
| 273 | "INSERT INTO users (name, email) VALUES ('John', 'john@example.com')", |
| 274 | "UPDATE users SET active = true WHERE id = 1", |
| 275 | "DELETE FROM users WHERE created_at < '2020-01-01'", |
| 276 | } |
| 277 | |
| 278 | for _, query := range complexQueries { |
| 279 | t.Run(query[:30]+"...", func(t *testing.T) { |
| 280 | var outBuf, errBuf bytes.Buffer |
| 281 | parser := NewParser(&outBuf, &errBuf, CLIParserOptions{Format: "table"}) |
| 282 | |
| 283 | result, err := parser.Parse(query) |
| 284 | if err != nil { |
| 285 | t.Errorf("Failed to parse complex query: %v", err) |
| 286 | } |
| 287 | if result != nil && result.AST != nil { |
| 288 | ast.ReleaseAST(result.AST) |
| 289 | } |
| 290 | }) |
| 291 | } |
| 292 | } |
| 293 | |
| 294 | // TestConvertStatement tests statement conversion |
| 295 | func TestConvertStatement(t *testing.T) { |
nothing calls this directly
no test coverage detected