move the Filter method to the datastore.
parent
b47a658555
commit
8745da43e3
|
@ -1,4 +1,4 @@
|
||||||
package engine
|
package datastore
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
|
@ -1,4 +1,4 @@
|
||||||
package engine
|
package datastore
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
|
@ -0,0 +1,69 @@
|
||||||
|
package datastore
|
||||||
|
|
||||||
|
import (
|
||||||
|
"common"
|
||||||
|
. "launchpad.net/gocheck"
|
||||||
|
"parser"
|
||||||
|
)
|
||||||
|
|
||||||
|
type FilteringSuite struct{}
|
||||||
|
|
||||||
|
var _ = Suite(&FilteringSuite{})
|
||||||
|
|
||||||
|
func (self *FilteringSuite) TestEqualityFiltering(c *C) {
|
||||||
|
queryStr := "select * from t where column_one == 100 and column_two != 6;"
|
||||||
|
query, err := parser.ParseQuery(queryStr)
|
||||||
|
c.Assert(err, IsNil)
|
||||||
|
series, err := common.StringToSeriesArray(`
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"points": [
|
||||||
|
{"values": [{"int_value": 100},{"int_value": 5 }], "timestamp": 1381346631, "sequence_number": 1},
|
||||||
|
{"values": [{"int_value": 100},{"int_value": 6 }], "timestamp": 1381346631, "sequence_number": 1},
|
||||||
|
{"values": [{"int_value": 90 },{"int_value": 15}], "timestamp": 1381346632, "sequence_number": 1}
|
||||||
|
],
|
||||||
|
"name": "t",
|
||||||
|
"fields": [
|
||||||
|
{"type": "INT32", "name": "column_one"},
|
||||||
|
{"type": "INT32", "name": "column_two"}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
`)
|
||||||
|
c.Assert(err, IsNil)
|
||||||
|
result, err := Filter(query, series[0])
|
||||||
|
c.Assert(err, IsNil)
|
||||||
|
c.Assert(result, NotNil)
|
||||||
|
c.Assert(result.Points, HasLen, 1)
|
||||||
|
c.Assert(*result.Points[0].Values[0].IntValue, Equals, int32(100))
|
||||||
|
c.Assert(*result.Points[0].Values[1].IntValue, Equals, int32(5))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (self *FilteringSuite) TestInequalityFiltering(c *C) {
|
||||||
|
queryStr := "select * from t where column_one >= 100 and column_two > 6;"
|
||||||
|
query, err := parser.ParseQuery(queryStr)
|
||||||
|
c.Assert(err, IsNil)
|
||||||
|
series, err := common.StringToSeriesArray(`
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"points": [
|
||||||
|
{"values": [{"int_value": 100},{"int_value": 7 }], "timestamp": 1381346631, "sequence_number": 1},
|
||||||
|
{"values": [{"int_value": 100},{"int_value": 6 }], "timestamp": 1381346631, "sequence_number": 1},
|
||||||
|
{"values": [{"int_value": 90 },{"int_value": 15}], "timestamp": 1381346632, "sequence_number": 1}
|
||||||
|
],
|
||||||
|
"name": "t",
|
||||||
|
"fields": [
|
||||||
|
{"type": "INT32", "name": "column_one"},
|
||||||
|
{"type": "INT32", "name": "column_two"}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
`)
|
||||||
|
c.Assert(err, IsNil)
|
||||||
|
result, err := Filter(query, series[0])
|
||||||
|
c.Assert(err, IsNil)
|
||||||
|
c.Assert(result, NotNil)
|
||||||
|
c.Assert(result.Points, HasLen, 1)
|
||||||
|
c.Assert(*result.Points[0].Values[0].IntValue, Equals, int32(100))
|
||||||
|
c.Assert(*result.Points[0].Values[1].IntValue, Equals, int32(7))
|
||||||
|
}
|
|
@ -905,61 +905,3 @@ func (self *EngineSuite) TestPercentileQueryWithOutOfBoundNumericArguments(c *C)
|
||||||
runQueryRunError(engine, "select percentile(column_one, 0) from foo group by time(1m);", c, err)
|
runQueryRunError(engine, "select percentile(column_one, 0) from foo group by time(1m);", c, err)
|
||||||
runQueryRunError(engine, "select percentile(column_one, 105) from foo group by time(1m);", c, err)
|
runQueryRunError(engine, "select percentile(column_one, 105) from foo group by time(1m);", c, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *EngineSuite) TestEqualityFiltering(c *C) {
|
|
||||||
queryStr := "select * from t where column_one == 100 and column_two != 6;"
|
|
||||||
query, err := parser.ParseQuery(queryStr)
|
|
||||||
c.Assert(err, IsNil)
|
|
||||||
series, err := common.StringToSeriesArray(`
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"points": [
|
|
||||||
{"values": [{"int_value": 100},{"int_value": 5 }], "timestamp": 1381346631, "sequence_number": 1},
|
|
||||||
{"values": [{"int_value": 100},{"int_value": 6 }], "timestamp": 1381346631, "sequence_number": 1},
|
|
||||||
{"values": [{"int_value": 90 },{"int_value": 15}], "timestamp": 1381346632, "sequence_number": 1}
|
|
||||||
],
|
|
||||||
"name": "t",
|
|
||||||
"fields": [
|
|
||||||
{"type": "INT32", "name": "column_one"},
|
|
||||||
{"type": "INT32", "name": "column_two"}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
`)
|
|
||||||
c.Assert(err, IsNil)
|
|
||||||
result, err := Filter(query, series[0])
|
|
||||||
c.Assert(err, IsNil)
|
|
||||||
c.Assert(result, NotNil)
|
|
||||||
c.Assert(result.Points, HasLen, 1)
|
|
||||||
c.Assert(*result.Points[0].Values[0].IntValue, Equals, int32(100))
|
|
||||||
c.Assert(*result.Points[0].Values[1].IntValue, Equals, int32(5))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (self *EngineSuite) TestInequalityFiltering(c *C) {
|
|
||||||
queryStr := "select * from t where column_one >= 100 and column_two > 6;"
|
|
||||||
query, err := parser.ParseQuery(queryStr)
|
|
||||||
c.Assert(err, IsNil)
|
|
||||||
series, err := common.StringToSeriesArray(`
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"points": [
|
|
||||||
{"values": [{"int_value": 100},{"int_value": 7 }], "timestamp": 1381346631, "sequence_number": 1},
|
|
||||||
{"values": [{"int_value": 100},{"int_value": 6 }], "timestamp": 1381346631, "sequence_number": 1},
|
|
||||||
{"values": [{"int_value": 90 },{"int_value": 15}], "timestamp": 1381346632, "sequence_number": 1}
|
|
||||||
],
|
|
||||||
"name": "t",
|
|
||||||
"fields": [
|
|
||||||
{"type": "INT32", "name": "column_one"},
|
|
||||||
{"type": "INT32", "name": "column_two"}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
`)
|
|
||||||
c.Assert(err, IsNil)
|
|
||||||
result, err := Filter(query, series[0])
|
|
||||||
c.Assert(err, IsNil)
|
|
||||||
c.Assert(result, NotNil)
|
|
||||||
c.Assert(result.Points, HasLen, 1)
|
|
||||||
c.Assert(*result.Points[0].Values[0].IntValue, Equals, int32(100))
|
|
||||||
c.Assert(*result.Points[0].Values[1].IntValue, Equals, int32(7))
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue