@@ -66,6 +66,39 @@ func TestBasicIndexing(t *testing.T) {
6666 {" └─ columns: [pk v1]" },
6767 },
6868 },
69+ {
70+ Query : "SELECT * FROM test WHERE (v1 > 3 OR v1 < 2) AND v1 <> 5 ORDER BY pk;" ,
71+ Expected : []sql.Row {
72+ {11 , 1 },
73+ {14 , 4 }},
74+ },
75+ {
76+ Query : "explain SELECT * FROM test WHERE (v1 > 3 OR v1 < 2) AND v1 <> 5 ORDER BY pk;" ,
77+ Expected : []sql.Row {
78+ {"Sort(test.pk ASC)" },
79+ {" └─ IndexedTableAccess(test)" },
80+ {" ├─ index: [test.v1]" },
81+ {" ├─ filters: [{(NULL, 2)}, {(3, 5)}, {(5, ∞)}]" },
82+ {" └─ columns: [pk v1]" },
83+ },
84+ },
85+ {
86+ Query : "SELECT * FROM test WHERE v1 = 2 OR v1 = 4 ORDER BY pk;" ,
87+ Expected : []sql.Row {
88+ {12 , 2 },
89+ {14 , 4 },
90+ },
91+ },
92+ {
93+ Query : "explain SELECT * FROM test WHERE v1 = 2 OR v1 = 4 ORDER BY pk;" ,
94+ Expected : []sql.Row {
95+ {"Sort(test.pk ASC)" },
96+ {" └─ IndexedTableAccess(test)" },
97+ {" ├─ index: [test.v1]" },
98+ {" ├─ filters: [{[2, 2]}, {[4, 4]}]" },
99+ {" └─ columns: [pk v1]" },
100+ },
101+ },
69102 {
70103 Query : "SELECT * FROM test WHERE v1 IN (2, 4) ORDER BY pk;" ,
71104 Expected : []sql.Row {
@@ -151,6 +184,24 @@ func TestBasicIndexing(t *testing.T) {
151184 {12 , "twelve" },
152185 },
153186 },
187+ {
188+ Query : "SELECT * FROM test WHERE v1 > 't' OR v1 < 'f' ORDER BY pk;" ,
189+ Expected : []sql.Row {
190+ {11 , "eleven" },
191+ {12 , "twelve" },
192+ {13 , "thirteen" },
193+ },
194+ },
195+ {
196+ Query : "explain SELECT * FROM test WHERE v1 > 't' OR v1 < 'f' ORDER BY pk;" ,
197+ Expected : []sql.Row {
198+ {"Sort(test.pk ASC)" },
199+ {" └─ IndexedTableAccess(test)" },
200+ {" ├─ index: [test.pk,test.v1]" },
201+ {" ├─ filters: [{[NULL, ∞), (NULL, f)}, {[NULL, ∞), (t, ∞)}]" },
202+ {" └─ columns: [pk v1]" },
203+ },
204+ },
154205 {
155206 Query : "DELETE FROM test WHERE v1 = 'twelve'" ,
156207 SkipResultsCheck : true ,
@@ -1261,6 +1312,16 @@ func TestBasicIndexing(t *testing.T) {
12611312 {5 , 9 },
12621313 },
12631314 },
1315+ {
1316+ Query : "explain SELECT * FROM test WHERE v1 BETWEEN 3 AND 5 OR v1 BETWEEN 7 AND 9 order by 1;" ,
1317+ Expected : []sql.Row {
1318+ {"Sort(test.pk ASC)" },
1319+ {" └─ IndexedTableAccess(test)" },
1320+ {" ├─ index: [test.v1]" },
1321+ {" ├─ filters: [{[3, 5]}, {[7, 9]}]" },
1322+ {" └─ columns: [pk v1]" },
1323+ },
1324+ },
12641325 },
12651326 },
12661327 {
0 commit comments