File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -32,6 +32,42 @@ func TableName(node node.Node) string {
3232 return ""
3333}
3434
35+ // TableSelector returns the table selector Node
36+ func TableSelector (n node.Node ) * expr.Selector {
37+ switch actual := n .(type ) {
38+ case * query.Select :
39+ return queryTableSelector (actual )
40+ case * insert.Statement :
41+ return extractSelector (actual .Target .X )
42+ case * update.Statement :
43+ return extractSelector (actual .Target .X )
44+ case * del.Statement :
45+ return extractSelector (actual .Target .X )
46+ case * table.Create :
47+ return extractSelector (actual .Spec .Name )
48+ case * table.Drop :
49+ return extractSelector (actual .Name )
50+ }
51+ return nil
52+ }
53+
54+ func queryTableSelector (s * query.Select ) * expr.Selector {
55+ if s .From .X == nil {
56+ return nil
57+ }
58+ return extractSelector (s .From .X )
59+ }
60+
61+ func extractSelector (node node.Node ) * expr.Selector {
62+ switch t := node .(type ) {
63+ case * expr.Selector :
64+ return t
65+ case * expr.Ident :
66+ return & expr.Selector {Name : t .Name }
67+ }
68+ return nil
69+ }
70+
3571func queryTableName (sel * query.Select ) string {
3672 if sel .From .X == nil {
3773 return ""
You can’t perform that action at this time.
0 commit comments