ExampleExtractMetadata demonstrates extracting comprehensive metadata from a query.
()
| 190 | |
| 191 | // ExampleExtractMetadata demonstrates extracting comprehensive metadata from a query. |
| 192 | func ExampleExtractMetadata() { |
| 193 | sql := `SELECT u.name, COUNT(o.id) as order_count |
| 194 | FROM users u |
| 195 | LEFT JOIN orders o ON u.id = o.user_id |
| 196 | WHERE u.active = true |
| 197 | GROUP BY u.name |
| 198 | HAVING COUNT(o.id) > 5` |
| 199 | |
| 200 | ast, err := gosqlx.Parse(sql) |
| 201 | if err != nil { |
| 202 | log.Fatal(err) |
| 203 | } |
| 204 | |
| 205 | metadata := gosqlx.ExtractMetadata(ast) |
| 206 | fmt.Printf("Tables: %d, Columns: %d, Functions: %d\n", |
| 207 | len(metadata.Tables), len(metadata.Columns), len(metadata.Functions)) |
| 208 | // Output: Tables: 2, Columns: 4, Functions: 1 |
| 209 | } |
| 210 | |
| 211 | // ExampleExtractTablesQualified demonstrates extracting qualified table names. |
| 212 | func ExampleExtractTablesQualified() { |
nothing calls this directly
no test coverage detected