@@ -10,21 +10,22 @@ import (
1010 "github.com/stretchr/testify/assert"
1111)
1212
13+ var lSchema = sql.Schema {
14+ sql.Field {"lcol1" , sql .String },
15+ sql.Field {"lcol2" , sql .String },
16+ sql.Field {"lcol3" , sql .Integer },
17+ sql.Field {"lcol4" , sql .BigInteger },
18+ }
19+
20+ var rSchema = sql.Schema {
21+ sql.Field {"rcol1" , sql .String },
22+ sql.Field {"rcol2" , sql .String },
23+ sql.Field {"rcol3" , sql .Integer },
24+ sql.Field {"rcol4" , sql .BigInteger },
25+ }
26+
1327func TestCrossJoin (t * testing.T ) {
1428 assert := assert .New (t )
15- lSchema := sql.Schema {
16- sql.Field {"lcol1" , sql .String },
17- sql.Field {"lcol2" , sql .String },
18- sql.Field {"lcol3" , sql .Integer },
19- sql.Field {"lcol4" , sql .BigInteger },
20- }
21-
22- rSchema := sql.Schema {
23- sql.Field {"rcol1" , sql .String },
24- sql.Field {"rcol2" , sql .String },
25- sql.Field {"rcol3" , sql .Integer },
26- sql.Field {"rcol4" , sql .BigInteger },
27- }
2829
2930 resultSchema := sql.Schema {
3031 sql.Field {"lcol1" , sql .String },
@@ -44,7 +45,7 @@ func TestCrossJoin(t *testing.T) {
4445
4546 j := NewCrossJoin (ltable , rtable )
4647
47- assert .Equal (j .Schema (), resultSchema )
48+ assert .Equal (resultSchema , j .Schema ())
4849
4950 iter , err := j .RowIter ()
5051 assert .Nil (err )
@@ -91,6 +92,38 @@ func TestCrossJoin(t *testing.T) {
9192 assert .Nil (row )
9293}
9394
95+ func TestCrossJoin_Empty (t * testing.T ) {
96+ assert := assert .New (t )
97+
98+ ltable := mem .NewTable ("left" , lSchema )
99+ rtable := mem .NewTable ("right" , rSchema )
100+ insertData (assert , ltable )
101+
102+ j := NewCrossJoin (ltable , rtable )
103+
104+ iter , err := j .RowIter ()
105+ assert .Nil (err )
106+ assert .NotNil (iter )
107+
108+ row , err := iter .Next ()
109+ assert .Equal (io .EOF , err )
110+ assert .Nil (row )
111+
112+ ltable = mem .NewTable ("left" , lSchema )
113+ rtable = mem .NewTable ("right" , rSchema )
114+ insertData (assert , rtable )
115+
116+ j = NewCrossJoin (ltable , rtable )
117+
118+ iter , err = j .RowIter ()
119+ assert .Nil (err )
120+ assert .NotNil (iter )
121+
122+ row , err = iter .Next ()
123+ assert .Equal (io .EOF , err )
124+ assert .Nil (row )
125+ }
126+
94127func insertData (assert * assert.Assertions , table * mem.Table ) {
95128 err := table .Insert ("col1_1" , "col2_1" , int32 (1111 ), int64 (2222 ))
96129 assert .Nil (err )
0 commit comments