containsTable checks whether the given AST node references the specified table.
(node ast.Node, database, table string)
| 322 | |
| 323 | // containsTable checks whether the given AST node references the specified table. |
| 324 | func containsTable(node ast.Node, database, table string) bool { |
| 325 | switch n := node.(type) { |
| 326 | case *ast.UpdateStmt: |
| 327 | for _, expr := range n.Tables { |
| 328 | if tableExprReferences(expr, database, table) { |
| 329 | return true |
| 330 | } |
| 331 | } |
| 332 | case *ast.DeleteStmt: |
| 333 | for _, expr := range n.Tables { |
| 334 | if tableExprReferences(expr, database, table) { |
| 335 | return true |
| 336 | } |
| 337 | } |
| 338 | for _, expr := range n.Using { |
| 339 | if tableExprReferences(expr, database, table) { |
| 340 | return true |
| 341 | } |
| 342 | } |
| 343 | default: |
| 344 | } |
| 345 | return false |
| 346 | } |
| 347 | |
| 348 | func tableExprReferences(expr ast.TableExpr, database, table string) bool { |
| 349 | switch n := expr.(type) { |
no test coverage detected