Commit Graph

14 Commits (d2ea7c30ece8e2db9578a5b89ef19887442c9526)

Author SHA1 Message Date
Yiqun (Ethan) Zhang 5333ff4d1b
feat(transpiler): support difference(), group by wildcard, and correc… (#17021)
* feat(transpiler): support difference(), stddev(), spread(), group by wildcard, and correct _time column
2020-03-06 11:19:46 -05:00
Jonathan A. Sternberg dd56c23343
fix(query/influxql): update transpiler for moved/renamed code (#13740)
The `databases()` function was moved into the `influxdata/influxdb/v1`
package and so it wouldn't work anymore. The `percentile()` call was
changed to `quantile()` and the argument was changed to `q`. This also
updates `median()` to use `median()` since we now produce AST's and not
the spec so we can use the `median()` definition instead.
2019-05-09 11:22:32 -05:00
Jonathan A. Sternberg 8b20b52f51
refactor(query/influxql): modify the transpiler interface to produce an AST (#11662)
This refactors everything to generate and use a flux AST when
transpiling an influxql query. This also updates the spectests so they
use flux instead of writing out the AST and compare the resulting
AST's.
2019-02-06 10:18:33 -06:00
Nathaniel Cook 1708a41fa7 refactor: update query functions for Flux builtins 2019-01-11 13:11:57 -07:00
Lorenzo Affetti eda4a59c35 Support for median in transpiler 2018-11-27 17:23:29 +01:00
Nathaniel Cook 9fecaa0eb0 chore: Update for Flux renaming 2018-11-05 19:30:22 -07:00
Adam 58f4e9fc0b
Refactor Platform according to new organization in `flux` (#966)
We reorganized the functions in flux to have the structure:
/functions
/inputs
/transformations
/outputs
this PR catches up platform to work with the new package layout.

As a separate refactoring issue, we should discuss:

from(bucket: ) should migrate from flux --> platform
to_http and to_kafka should migrate from platform --> flux
2018-10-05 00:06:14 -04:00
Jonathan A. Sternberg dfc32d2635 feat(query/influxql): normalize the time for all aggregate queries
The transpiler will normalize the `_time` column by dropping any
existing time column and then duplicating `_start` when the query is an
aggregate type.

This works for the selectors because they did not normalize their
`_time` column at all and, while the aggregates did normalize their
`_time` column, we have made the decision to remove that functionality
and have aggregates not set a `_time` column at all.
2018-09-12 16:25:51 -05:00
Stuart Carnie ac75af2f58 refactor: Migrate query package to influxdata/flux repository 2018-09-06 11:13:48 -07:00
Adam 2ee4157ded
feat(query/functions) Update percentile function to provide a selector option add transpiler support. (#444) 2018-07-25 16:32:04 -04:00
Jonathan A. Sternberg c54a1e8fd9 feat(query/influxql): implement all of the basic aggregates and selectors 2018-07-06 13:45:35 -05:00
Jonathan A. Sternberg 27cd61e22d refactor(query/influxql): modify the transpiler compilation tests to remove skip
The transpiler compilation tests will now not allow skip to be
specified. Instead, it must return an error message that starts with
`unimplemented` and then the reason will be used as the skip message.

This way, it will be easier to identify the failing tests in the
transpiler. In the previous method, it was possible for a test to be
marked as skip, but for the transpiler to return the wrong error message
because the test did not differentiate between an unimplemented error
message and an incorrect error message.
2018-07-06 09:21:41 -05:00
Nathaniel Cook b4e68fad98 fix(transpiler): Include function name in error 2018-07-03 13:01:25 -06:00
Jonathan A. Sternberg 1b31a1150c refactor(query/influxql): follow the transpiler readme
There are a few changes to how the transpiler works. The first is that
the streams are now abstracted behind a `cursor` interface. The
interface keeps track of which AST nodes (like variables or function
calls) are represented by the data inside of the stream and the method
of how to access the underlying data. This makes it easier to make a
generic interface for things like the join and map operations. This also
makes it easier to, in the future, use the same code from the map
operation for a filter so we can implement conditions.

This also follows the transpiler readme's methods and takes advantage of
the updates to the ifql language. This means it will group the relevant
cursors into a cursor group, perform any necessary joins, and allow us
to continue building on this as we flesh out more parts of the
transpiler and the language.

The cursor interface makes it so we no longer have to keep a symbol
table mapping the generated names to the locations because that is all
kept within the incoming cursor rather than as a separate data
structure.

It also splits the transpiler into more files so it is easier to find
the relevant code for each stage of the transpiler.
2018-06-08 13:07:10 -05:00