Example_extractMetadata demonstrates extracting comprehensive metadata from a query.
()
| 566 | |
| 567 | // Example_extractMetadata demonstrates extracting comprehensive metadata from a query. |
| 568 | func Example_extractMetadata() { |
| 569 | sql := `SELECT u.name, COUNT(o.id) as order_count |
| 570 | FROM users u |
| 571 | LEFT JOIN orders o ON u.id = o.user_id |
| 572 | WHERE u.active = true |
| 573 | GROUP BY u.name |
| 574 | HAVING COUNT(o.id) > 5` |
| 575 | |
| 576 | ast, err := gosqlx.Parse(sql) |
| 577 | if err != nil { |
| 578 | log.Fatal(err) |
| 579 | } |
| 580 | |
| 581 | metadata := gosqlx.ExtractMetadata(ast) |
| 582 | fmt.Printf("Tables: %d, Columns: %d, Functions: %d\n", |
| 583 | len(metadata.Tables), len(metadata.Columns), len(metadata.Functions)) |
| 584 | // Output: Tables: 2, Columns: 4, Functions: 1 |
| 585 | } |
| 586 | |
| 587 | // Example_extractTablesQualified demonstrates extracting qualified table names. |
| 588 | func Example_extractTablesQualified() { |
nothing calls this directly
no test coverage detected