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

Commit b78fa77

Browse files
authored
Removed pilosa-dependent files from Windows compilation (#812)
Removed pilosa-dependent files from Windows compilation
2 parents c17b6fb + 5931c40 commit b78fa77

File tree

15 files changed

+235
-196
lines changed

15 files changed

+235
-196
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ CREATE INDEX foo ON table USING driverid (col1, col2) WITH (async = true)
306306

307307
### Old `pilosalib` driver
308308

309-
`pilosalib` driver was renamed to `pilosa` and now `pilosa` does not require an external pilosa server.
309+
`pilosalib` driver was renamed to `pilosa` and now `pilosa` does not require an external pilosa server. `pilosa` is not supported on Windows.
310310

311311
### Metrics
312312

auth/audit_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
// +build !windows
2+
13
package auth_test
24

35
import (

auth/common_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
// +build !windows
2+
13
package auth_test
24

35
import (

auth/native_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
// +build !windows
2+
13
package auth_test
24

35
import (

auth/none_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
// +build !windows
2+
13
package auth_test
24

35
import (

engine_pilosa_test.go

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

0 commit comments

Comments
 (0)