diff --git a/influxql/parser.go b/influxql/parser.go index a92196f509..109a6c1b8c 100644 --- a/influxql/parser.go +++ b/influxql/parser.go @@ -1822,6 +1822,11 @@ func (p *Parser) parseSortFields() (SortFields, error) { if err != nil { return nil, err } + + if lit != "time" { + return nil, errors.New("only ORDER BY time supported at this time") + } + fields = append(fields, field) // Parse error... default: @@ -1845,6 +1850,10 @@ func (p *Parser) parseSortFields() (SortFields, error) { fields = append(fields, field) } + if len(fields) > 1 { + return nil, errors.New("only ORDER BY time supported at this time") + } + return fields, nil } diff --git a/influxql/parser_test.go b/influxql/parser_test.go index c08c74792e..2df5104d81 100644 --- a/influxql/parser_test.go +++ b/influxql/parser_test.go @@ -585,7 +585,8 @@ func TestParser_ParseStatement(t *testing.T) { // SHOW SERIES WHERE with ORDER BY and LIMIT { - s: `SHOW SERIES WHERE region = 'order by desc' ORDER BY DESC, field1, field2 DESC LIMIT 10`, + skip: true, + s: `SHOW SERIES WHERE region = 'order by desc' ORDER BY DESC, field1, field2 DESC LIMIT 10`, stmt: &influxql.ShowSeriesStatement{ Condition: &influxql.BinaryExpr{ Op: influxql.EQ, @@ -1258,6 +1259,7 @@ func TestParser_ParseStatement(t *testing.T) { {s: `SELECT field1 FROM myseries ORDER BY /`, err: `found /, expected identifier, ASC, DESC at line 1, char 38`}, {s: `SELECT field1 FROM myseries ORDER BY 1`, err: `found 1, expected identifier, ASC, DESC at line 1, char 38`}, {s: `SELECT field1 FROM myseries ORDER BY time ASC,`, err: `found EOF, expected identifier at line 1, char 47`}, + {s: `SELECT field1 FROM myseries ORDER BY time, field1`, err: `only ORDER BY time supported at this time`}, {s: `SELECT field1 AS`, err: `found EOF, expected identifier at line 1, char 18`}, {s: `SELECT field1 FROM foo group by time(1s)`, err: `GROUP BY requires at least one aggregate function`}, {s: `SELECT count(value), value FROM foo`, err: `mixing aggregate and non-aggregate queries is not supported`},