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.
The REPL's use of the interpreter was causing it to not get the builtins
defined in builtin scripts. For example the `top` function was missing.
This change fixes the issues by ensuring the builtins are only evaluated
once and that there is only one way to get the query Interpreter that is
guaranteed to have the proper builtins.
Moves idpe.QueryService into platform/query.ProxyQueryService
Splits the Request into ProxyRequest and Request.
Changes query.QueryService and query.AsyncQueryService to use a Request
type. This means that the Compiler interface is consumed by the service
to abstract out transpilation vs Flux compilation vs raw spec.
The transpiler handler is removed.
There are separate http handlers and service implementations for each of
the three query services.
Query logging types are moved into platform.
The ResultIterator now expects Cancel to always be called.
The fluxd binary exposes the query endpoint specified in the swagger
file.
* Add Flux Rename, Drop, and Keep functions.
* Add flux language tests for drop and rename; bugfixes around constructing drop/rename procedures
* Correct autcomplete error, remove debug statements
* Fix additional autocomplete error
* Add support for fn parameter to flux drop and rename functions
* Remove unneeded renameDropTransformation field
* WIP initial thoughts about merge/procedure rewrite logic
* Remove unnecessary external columnFn types
* Add additional query tests for drop/rename, add error when drop or rename refers to column that doesn't exist
* Change swapped test names
* Add keep function implementation
* Refactor rename/drop implementation to make use of helper methods
* Remove test skips forqueries that produce an expected error
* Make predicate return value logic clearer in drop implementation
* Add group key support to drop/rename/keep, update unit and query tests accordingly
* WIP refactor drop and rename to use new SchemaMutator interface
* Add unit tests for refactored drop, keep, and rename; bug fixes
* Update file structure for flux schema mutation functions
* Refactor mutation functions and interface
* Address final review drop/rename PR review comments
* Add builtin import to make sure builtins are initialized if test drop_rename_keep_test is run as standalone
* Small aesthetic change to schema_mutators.go
These tests were part of a PR when the rename was made.
The changes were not rebased before merge so we did not discover the
failures till after the merge.
previous versions only supported the first parameter to time() that set the window size. This version supports the second parameter, which shifts the offset a fixed amount from the epoch