@@ -5,11 +5,28 @@ import (
55 "fmt"
66 "github.com/stretchr/testify/assert"
77 "github.com/viant/parsly"
8+ "github.com/viant/sqlparser/expr"
9+ "github.com/viant/sqlparser/node"
810 "github.com/viant/sqlparser/query"
911 "strings"
1012 "testing"
1113)
1214
15+ func TestBinaryWalk (t * testing.T ) {
16+ query , _ := ParseQuery ("SELECT * FROM t WHERE a = 1 AND b = 2 AND c IN(1,2)" )
17+ binary , ok := query .Qualify .X .(* expr.Binary )
18+ if ! assert .True (t , ok ) {
19+ return
20+ }
21+ var actualColumns = make ([]string , 0 )
22+ binary .Walk (func (ident node.Node , values * expr.Values , operator , parentOperator string ) error {
23+ actualColumns = append (actualColumns , Stringify (ident ))
24+ return nil
25+ })
26+ assert .EqualValues (t , []string {"a" , "b" , "c" }, actualColumns )
27+
28+ }
29+
1330func TestParseSelect (t * testing.T ) {
1431
1532 {
@@ -313,6 +330,12 @@ func TestParseSelect(t *testing.T) {
313330 SQL : `SELECT ID,NAME FROM AAA ORDER BY 2 DESC, 1 ASC` ,
314331 expect : `SELECT ID, NAME FROM AAA ORDER BY 2 DESC, 1 ASC` ,
315332 },
333+
334+ {
335+ description : "" ,
336+ SQL : `SELECT col1, col2 FROM table1/tt t JOIN xx/e v ON v.ID=t.ID` ,
337+ expect : `SELECT col1, col2 FROM table1/tt t JOIN xx/e v ON v.ID = t.ID` ,
338+ },
316339 }
317340
318341 for _ , testCase := range testCases {
0 commit comments