fix #331. Allow negative time values
parent
99f6dc74bc
commit
1567c69ad1
|
@ -414,6 +414,14 @@ func (self *QueryParserSuite) TestErrorWithTimeSuffix(c *C) {
|
|||
c.Assert(err, ErrorMatches, ".*1f.*")
|
||||
}
|
||||
|
||||
// issue #331
|
||||
func (self *QueryParserSuite) TestTimeWithNegativeEndTime(c *C) {
|
||||
q := `SELECT * FROM foo where time < -1s`
|
||||
query, err := ParseSelectQuery(q)
|
||||
c.Assert(err, IsNil)
|
||||
c.Assert(query.GetEndTime(), Equals, time.Unix(-1, 0).UTC())
|
||||
}
|
||||
|
||||
func (self *QueryParserSuite) TestParseSelectWithTimeCondition(c *C) {
|
||||
queries := map[string]time.Time{
|
||||
"select value, time from t where time > now() - 1d and time < now() - 1m;": time.Now().Add(-time.Minute).Round(time.Minute).UTC(),
|
||||
|
|
|
@ -441,6 +441,17 @@ VALUE:
|
|||
$$->alias = NULL;
|
||||
}
|
||||
|
|
||||
'-' DURATION_VALUE
|
||||
{
|
||||
char *name = calloc(1, strlen($2->name) + 2);
|
||||
strcat(name, "-");
|
||||
strcat(name, $2->name);
|
||||
free($2->name);
|
||||
$2->name = name;
|
||||
$$ = $2;
|
||||
$$->alias = NULL;
|
||||
}
|
||||
|
|
||||
SIMPLE_NAME_VALUE
|
||||
{
|
||||
$$ = $1;
|
||||
|
|
|
@ -11,6 +11,9 @@ int main(int argc, char **argv) {
|
|||
q = parse_query("explain select users.events group_by user_email,time(1h) where time>now()-1d;");
|
||||
close_query(&q);
|
||||
|
||||
q = parse_query("select * from foo where time < -1s");
|
||||
close_query(&q);
|
||||
|
||||
// test freeing on error
|
||||
q = parse_query("select count(*) from users.events group_by user_email,time(1h) where time >> now()-1d;");
|
||||
close_query(&q);
|
||||
|
|
Loading…
Reference in New Issue