Skip to content
This repository was archived by the owner on Jan 28, 2021. It is now read-only.

Commit 010fe49

Browse files
committed
Removed pilosa-dependent files from Windows compilation
Signed-off-by: Daylon Wilkins <[email protected]>
1 parent 1783e90 commit 010fe49

File tree

14 files changed

+273
-195
lines changed

14 files changed

+273
-195
lines changed

auth/audit_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
// These tests do not run on Windows due to the Pilosa dependency, as it makes
2+
// use of syscall.Mmap, which does not exist on the platform.
3+
4+
// +build !windows
5+
16
package auth_test
27

38
import (

auth/common_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
// These tests do not run on Windows due to the Pilosa dependency, as it makes
2+
// use of syscall.Mmap, which does not exist on the platform.
3+
4+
// +build !windows
5+
16
package auth_test
27

38
import (

auth/native_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
// These tests do not run on Windows due to the Pilosa dependency, as it makes
2+
// use of syscall.Mmap, which does not exist on the platform.
3+
4+
// +build !windows
5+
16
package auth_test
27

38
import (

auth/none_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
// These tests do not run on Windows due to the Pilosa dependency, as it makes
2+
// use of syscall.Mmap, which does not exist on the platform.
3+
4+
// +build !windows
5+
16
package auth_test
27

38
import (

engine_pilosa_test.go

Lines changed: 213 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,213 @@
1+
// These tests do not run on Windows due to the Pilosa dependency, as it makes
2+
// use of syscall.Mmap, which does not exist on the platform.
3+
4+
// +build !windows
5+
6+
package sqle_test
7+
8+
import (
9+
"context"
10+
"io/ioutil"
11+
"os"
12+
"testing"
13+
"time"
14+
15+
"github.com/src-d/go-mysql-server/sql"
16+
"github.com/src-d/go-mysql-server/sql/index/pilosa"
17+
"github.com/src-d/go-mysql-server/test"
18+
19+
"github.com/stretchr/testify/require"
20+
)
21+
22+
func TestIndexes(t *testing.T) {
23+
e := newEngine(t)
24+
25+
tmpDir, err := ioutil.TempDir(os.TempDir(), "pilosa-test")
26+
require.NoError(t, err)
27+
28+
require.NoError(t, os.MkdirAll(tmpDir, 0644))
29+
e.Catalog.RegisterIndexDriver(pilosa.NewDriver(tmpDir))
30+
31+
_, _, err = e.Query(
32+
newCtx(),
33+
"CREATE INDEX idx_i ON mytable USING pilosa (i) WITH (async = false)",
34+
)
35+
require.NoError(t, err)
36+
37+
_, _, err = e.Query(
38+
newCtx(),
39+
"CREATE INDEX idx_s ON mytable USING pilosa (s) WITH (async = false)",
40+
)
41+
require.NoError(t, err)
42+
43+
_, _, err = e.Query(
44+
newCtx(),
45+
"CREATE INDEX idx_is ON mytable USING pilosa (i, s) WITH (async = false)",
46+
)
47+
require.NoError(t, err)
48+
49+
defer func() {
50+
done, err := e.Catalog.DeleteIndex("mydb", "idx_i", true)
51+
require.NoError(t, err)
52+
<-done
53+
54+
done, err = e.Catalog.DeleteIndex("mydb", "idx_s", true)
55+
require.NoError(t, err)
56+
<-done
57+
58+
done, err = e.Catalog.DeleteIndex("foo", "idx_is", true)
59+
require.NoError(t, err)
60+
<-done
61+
}()
62+
63+
testCases := []struct {
64+
query string
65+
expected []sql.Row
66+
}{
67+
{
68+
"SELECT * FROM mytable WHERE i = 2",
69+
[]sql.Row{
70+
{int64(2), "second row"},
71+
},
72+
},
73+
{
74+
"SELECT * FROM mytable WHERE i > 1",
75+
[]sql.Row{
76+
{int64(3), "third row"},
77+
{int64(2), "second row"},
78+
},
79+
},
80+
{
81+
"SELECT * FROM mytable WHERE i < 3",
82+
[]sql.Row{
83+
{int64(1), "first row"},
84+
{int64(2), "second row"},
85+
},
86+
},
87+
{
88+
"SELECT * FROM mytable WHERE i <= 2",
89+
[]sql.Row{
90+
{int64(2), "second row"},
91+
{int64(1), "first row"},
92+
},
93+
},
94+
{
95+
"SELECT * FROM mytable WHERE i >= 2",
96+
[]sql.Row{
97+
{int64(2), "second row"},
98+
{int64(3), "third row"},
99+
},
100+
},
101+
{
102+
"SELECT * FROM mytable WHERE i = 2 AND s = 'second row'",
103+
[]sql.Row{
104+
{int64(2), "second row"},
105+
},
106+
},
107+
{
108+
"SELECT * FROM mytable WHERE i = 2 AND s = 'third row'",
109+
([]sql.Row)(nil),
110+
},
111+
{
112+
"SELECT * FROM mytable WHERE i BETWEEN 1 AND 2",
113+
[]sql.Row{
114+
{int64(1), "first row"},
115+
{int64(2), "second row"},
116+
},
117+
},
118+
{
119+
"SELECT * FROM mytable WHERE i = 1 OR i = 2",
120+
[]sql.Row{
121+
{int64(1), "first row"},
122+
{int64(2), "second row"},
123+
},
124+
},
125+
{
126+
"SELECT * FROM mytable WHERE i = 1 AND i = 2",
127+
([]sql.Row)(nil),
128+
},
129+
{
130+
"SELECT i as mytable_i FROM mytable WHERE mytable_i = 2",
131+
[]sql.Row{
132+
{int64(2)},
133+
},
134+
},
135+
{
136+
"SELECT i as mytable_i FROM mytable WHERE mytable_i > 1",
137+
[]sql.Row{
138+
{int64(3)},
139+
{int64(2)},
140+
},
141+
},
142+
{
143+
"SELECT i as mytable_i, s as mytable_s FROM mytable WHERE mytable_i = 2 AND mytable_s = 'second row'",
144+
[]sql.Row{
145+
{int64(2), "second row"},
146+
},
147+
},
148+
{
149+
"SELECT s, SUBSTRING(s, 1, 1) AS sub_s FROM mytable WHERE sub_s = 's'",
150+
[]sql.Row{
151+
{"second row", "s"},
152+
},
153+
},
154+
{
155+
"SELECT count(i) AS mytable_i, SUBSTR(s, -3) AS mytable_s FROM mytable WHERE i > 0 AND mytable_s='row' GROUP BY mytable_s",
156+
[]sql.Row{
157+
{int64(3), "row"},
158+
},
159+
},
160+
{
161+
"SELECT mytable_i FROM (SELECT i AS mytable_i FROM mytable) as t WHERE mytable_i > 1",
162+
[]sql.Row{
163+
{int64(2)},
164+
{int64(3)},
165+
},
166+
},
167+
}
168+
169+
for _, tt := range testCases {
170+
t.Run(tt.query, func(t *testing.T) {
171+
require := require.New(t)
172+
173+
tracer := new(test.MemTracer)
174+
ctx := sql.NewContext(context.TODO(), sql.WithTracer(tracer))
175+
176+
_, it, err := e.Query(ctx, tt.query)
177+
require.NoError(err)
178+
179+
rows, err := sql.RowIterToRows(it)
180+
require.NoError(err)
181+
182+
require.ElementsMatch(tt.expected, rows)
183+
require.Equal("plan.ResolvedTable", tracer.Spans[len(tracer.Spans)-1])
184+
})
185+
}
186+
}
187+
188+
func TestCreateIndex(t *testing.T) {
189+
require := require.New(t)
190+
e := newEngine(t)
191+
192+
tmpDir, err := ioutil.TempDir(os.TempDir(), "pilosa-test")
193+
require.NoError(err)
194+
195+
require.NoError(os.MkdirAll(tmpDir, 0644))
196+
e.Catalog.RegisterIndexDriver(pilosa.NewDriver(tmpDir))
197+
198+
_, iter, err := e.Query(newCtx(), "CREATE INDEX myidx ON mytable USING pilosa (i)")
199+
require.NoError(err)
200+
rows, err := sql.RowIterToRows(iter)
201+
require.NoError(err)
202+
require.Len(rows, 0)
203+
204+
defer func() {
205+
time.Sleep(1 * time.Second)
206+
done, err := e.Catalog.DeleteIndex("foo", "myidx", true)
207+
require.NoError(err)
208+
<-done
209+
210+
require.NoError(os.RemoveAll(tmpDir))
211+
}()
212+
}
213+

0 commit comments

Comments
 (0)