* 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
Introduces the Statisticser interface which ResultIterators may
implement.
The HTTP implementation uses HTTP trailers to preserve the statistics.
This way we do not need to have all encoders and decoders support
statistics.
It was effectively a copied and pasted platform.ID, so change it to a
type alias. Once our known references to the query/id package are
updated to platform.ID, we'll delete the package.
In order to facilitate this change the query.PartitionKey
interface was changed to use the values.Value interface.
Additionally map was previously broken when it needed to repartition.
Tests have been added.
The query service now handles some errors (not all) from the ifqld
service. This way, the transpiler, which uses the query service, can
report when it encounters an error from ifqld.
The transpiler will now correctly return errors in the JSON response.