extractTableExpr recursively extracts schema resources from a single TableExpr.
(expr ast.TableExpr, defaultDB string)
| 190 | |
| 191 | // extractTableExpr recursively extracts schema resources from a single TableExpr. |
| 192 | func extractTableExpr(expr ast.TableExpr, defaultDB string) []base.SchemaResource { |
| 193 | if expr == nil { |
| 194 | return nil |
| 195 | } |
| 196 | switch n := expr.(type) { |
| 197 | case *ast.TableRef: |
| 198 | db, table := omniTableRef(n, defaultDB) |
| 199 | return []base.SchemaResource{{Database: db, Table: table}} |
| 200 | case *ast.JoinClause: |
| 201 | var res []base.SchemaResource |
| 202 | res = append(res, extractTableExpr(n.Left, defaultDB)...) |
| 203 | res = append(res, extractTableExpr(n.Right, defaultDB)...) |
| 204 | return res |
| 205 | default: |
| 206 | return nil |
| 207 | } |
| 208 | } |
| 209 | |
| 210 | // omniStatementText returns the text of a statement, ensuring it ends with a semicolon. |
| 211 | func omniStatementText(a *OmniAST) string { |
no test coverage detected