Merge pull request #1254 from influxdb/fix-neq

Fix NEQ
pull/1255/head
Ben Johnson 2014-12-21 10:44:20 -07:00
commit e3ac00a5aa
3 changed files with 7 additions and 11 deletions

View File

@ -98,7 +98,7 @@ func TestFold(t *testing.T) {
{`foo(bar(2 + 3), 4)`, `foo(bar(5.000), 4.000)`}, {`foo(bar(2 + 3), 4)`, `foo(bar(5.000), 4.000)`},
{`4 / 0`, `0.000`}, {`4 / 0`, `0.000`},
{`4 = 4`, `true`}, {`4 = 4`, `true`},
{`4 != 4`, `false`}, {`4 <> 4`, `false`},
{`6 > 4`, `true`}, {`6 > 4`, `true`},
{`4 >= 4`, `true`}, {`4 >= 4`, `true`},
{`4 < 6`, `true`}, {`4 < 6`, `true`},
@ -109,7 +109,7 @@ func TestFold(t *testing.T) {
{`true AND false`, `false`}, {`true AND false`, `false`},
{`true OR false`, `true`}, {`true OR false`, `true`},
{`true = false`, `false`}, {`true = false`, `false`},
{`true != false`, `true`}, {`true <> false`, `true`},
{`true + false`, `true + false`}, {`true + false`, `true + false`},
// Time literals. // Time literals.
@ -117,7 +117,7 @@ func TestFold(t *testing.T) {
{`now() / 2h`, `"2000-01-01 00:00:00" / 2h`}, {`now() / 2h`, `"2000-01-01 00:00:00" / 2h`},
{`4µ + now()`, `"2000-01-01 00:00:00.000004"`}, {`4µ + now()`, `"2000-01-01 00:00:00.000004"`},
{`now() = now()`, `true`}, {`now() = now()`, `true`},
{`now() != now()`, `false`}, {`now() <> now()`, `false`},
{`now() < now() + 1h`, `true`}, {`now() < now() + 1h`, `true`},
{`now() <= now() + 1h`, `true`}, {`now() <= now() + 1h`, `true`},
{`now() >= now() - 1h`, `true`}, {`now() >= now() - 1h`, `true`},
@ -129,7 +129,7 @@ func TestFold(t *testing.T) {
{`10m + 1h - 60s`, `69m`}, {`10m + 1h - 60s`, `69m`},
{`(10m / 2) * 5`, `25m`}, {`(10m / 2) * 5`, `25m`},
{`60s = 1m`, `true`}, {`60s = 1m`, `true`},
{`60s != 1m`, `false`}, {`60s <> 1m`, `false`},
{`60s < 1h`, `true`}, {`60s < 1h`, `true`},
{`60s <= 1h`, `true`}, {`60s <= 1h`, `true`},
{`60s > 12s`, `true`}, {`60s > 12s`, `true`},

View File

@ -50,12 +50,6 @@ func (s *Scanner) Scan() (tok Token, pos Pos, lit string) {
return DIV, pos, "" return DIV, pos, ""
case '=': case '=':
return EQ, pos, "" return EQ, pos, ""
case '!':
if ch1, _ := s.r.read(); ch1 == '=' {
return NEQ, pos, ""
}
s.r.unread()
return ILLEGAL, pos, string(ch0)
case '>': case '>':
if ch1, _ := s.r.read(); ch1 == '=' { if ch1, _ := s.r.read(); ch1 == '=' {
return GTE, pos, "" return GTE, pos, ""
@ -65,6 +59,8 @@ func (s *Scanner) Scan() (tok Token, pos Pos, lit string) {
case '<': case '<':
if ch1, _ := s.r.read(); ch1 == '=' { if ch1, _ := s.r.read(); ch1 == '=' {
return LTE, pos, "" return LTE, pos, ""
} else if ch1 == '>' {
return NEQ, pos, ""
} }
s.r.unread() s.r.unread()
return LT, pos, "" return LT, pos, ""

View File

@ -42,7 +42,7 @@ func TestScanner_Scan(t *testing.T) {
{s: `or`, tok: influxql.OR}, {s: `or`, tok: influxql.OR},
{s: `=`, tok: influxql.EQ}, {s: `=`, tok: influxql.EQ},
{s: `!=`, tok: influxql.NEQ}, {s: `<>`, tok: influxql.NEQ},
{s: `! `, tok: influxql.ILLEGAL, lit: "!"}, {s: `! `, tok: influxql.ILLEGAL, lit: "!"},
{s: `<`, tok: influxql.LT}, {s: `<`, tok: influxql.LT},
{s: `<=`, tok: influxql.LTE}, {s: `<=`, tok: influxql.LTE},