package main import ( "engine/xsql" "fmt" "strings" ) func main() { stmt, _ := xsql.NewParser(strings.NewReader("SELECT id1 FROM src1 left join src2 on src1.f1->cid = src2.f2->cid")).Parse() var srcs []string xsql.WalkFunc(stmt.Joins, func(node xsql.Node) { if f,ok := node.(*xsql.FieldRef); ok { if string(f.StreamName) == "" { return } srcs = append(srcs, string(f.StreamName)) } }); for _, src := range srcs { fmt.Println(src) } }