func_visitor.go 482 B

12345678910111213141516171819202122232425
  1. package main
  2. import (
  3. "fmt"
  4. "github.com/emqx/kuiper/xsql"
  5. "strings"
  6. )
  7. func main() {
  8. stmt, _ := xsql.NewParser(strings.NewReader("SELECT id1 FROM src1 left join src2 on src1.f1->cid = src2.f2->cid")).Parse()
  9. var srcs []string
  10. xsql.WalkFunc(stmt.Joins, func(node xsql.Node) {
  11. if f, ok := node.(*xsql.FieldRef); ok {
  12. if string(f.StreamName) == "" {
  13. return
  14. }
  15. srcs = append(srcs, string(f.StreamName))
  16. }
  17. })
  18. for _, src := range srcs {
  19. fmt.Println(src)
  20. }
  21. }