MCPcopy Create free account
hub / github.com/bytebase/bytebase / extractTableExpr

Function extractTableExpr

backend/plugin/parser/mysql/resource_change.go:192–208  ·  view source on GitHub ↗

extractTableExpr recursively extracts schema resources from a single TableExpr.

(expr ast.TableExpr, defaultDB string)

Source from the content-addressed store, hash-verified

190
191// extractTableExpr recursively extracts schema resources from a single TableExpr.
192func 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.
211func omniStatementText(a *OmniAST) string {

Callers 1

extractTableExprsFunction · 0.85

Calls 1

omniTableRefFunction · 0.85

Tested by

no test coverage detected