docs-v2/content/v2.0/reference/release-notes/flux.md

1164 lines
29 KiB
Markdown

---
title: Flux release notes
description: Important changes and and what's new in each version of Flux.
weight: 102
menu:
v2_0_ref:
parent: Release notes
name: Flux
aliases:
- /v2.0/reference/flux/release-notes
---
{{% note %}}
_The latest release of InfluxDB v2.0 alpha includes **Flux v0.58.0**.
Though newer versions of Flux may be available, they will not be included with
InfluxDB until the next InfluxDB v2.0 release._
{{% /note %}}
## v0.58.4 [2020-01-07]
### Bug fixes
- Skip stdlib symlink was removed erroneously.
---
## v0.58.3 [2020-01-07]
### Bug fixes
- Ensure stdlib directory is created.
---
## v0.58.2 [2020-01-07]
### Bug fixes
- Correctly skip the stdlib symlink in libflux.
---
## v0.58.1 [2020-01-07]
### Bug fixes
- Ensure that stdlib is present when building with flux-config.
---
## v0.58.0 [2020-01-06]
### Features
- Serialize semantic graph flatbuffers.
- Implement `onEmpty` parameter for `filter()`.
- Serialize Flux standard library types as part of build process.
- Add type declarations for universe.
- Methods for type checking package dependencies.
- Add type declarations for strings.
### Bug fixes
- Expose tracing flag.
- Update `count` builtin type.
- Update `experimental.set` builtin type.
- Update the type of `influxdb.to` to be a passthrough.
- Update `fill` builtin type.
- Remove redundant clones found by a new version of clippy.
- Fix durations in Rust semantic graph.
- Removes unnecessary rc clone in semantic serializer.
- Do not stall forever in flux-config when an error happens with verbose.
- Update function block return statements to produce a stmt and not an expression.
- Fix token location for `scan_with_regex`.
- Cache environment variable for performance.
- Fix a couple errors in builtin types.
- Annotate variable assignment with polytype (not monotype).
---
## v0.57.0 [2019-12-10]
### Features
- Categorize more flux errors with codes.
- Teach flux-config how to download the sources when using vendor.
- Opentracing in query execution runtime.
- Reduce memory allocations for operations in values.
- Translate FlatBuffers semantic graph to Go.
- Add types for some universe builtins.
- Add type declarations for builtins.
- Add Numeric and Row kind constraints.
### Bug fixes
- Enable strict mode by default.
---
## v0.56.0 [2019-12-05]
### Features
- Crate for typing Flux standard library.
- Serialize type environment.
- Improve filter performance when filtering on values.
- Update usage duration test to exclude queue and requeue time.
- Add types for some built-ins.
- Add `timeout` parameter to experimental `http.get()`.
### Bug fixes
- Properly use a fake version with `flux-config` when no version is present.
- Address clippy lints.
- Add bytes monotype to Rust semantic module.
- Allow underscores (`_`) in type expressions.
---
## v0.55.1 [2019-12-02]
### Bug fixes
- Fix e2e usage test so that their queries are properly pushed down.
---
## v0.55.0 [2019-12-02]
### Breaking changes
- Expand the interface for `BufferedTable`.
### Features
- Expose optimized `pivot()` function.
- Create utility program for building `libflux`.
- Create a tool that measures performance of calling Rust from Go.
- Inject types in the semantic graph.
- MonoType and PolyType flatbuffer encodings.
- MonoType and PolyType flatbuffer schemas.
- Update Rust flatbuffers to more closely match Rust semantic graph.
- Flatbuffers AST to Go AST.
- Port immutable walk and fix mutable walk.
- Define the flatbuffers schema for semantic graph.
- Infer imported package types.
- Unify and infer function types.
- Add support for safely converting bytes to strings.
- Add sqlite3 support.
- Add internal table utility for streaming tables.
### Bug fixes
- Update semantic graph FlatBuffers schema for identifiers.
- Ignore order when comparing record types.
- Operands for `<=` and `>=` are comparable AND equatable.
- Constrain unary expressions to be same type as operand.
---
## v0.54.0 [2019-11-11]
### Features
- Expose function to analyze from string.
- Added semantic expression constraints to libflux.
- Custom `PartialEq` for polytypes.
- Extensible record unification.
- `Semantic.Walk`.
### Bug fixes
- Do not constrain type variables with empty kinds.
- Update usage tests to filter on `_field`.
- Record labels are scoped and fields are ordered.
- Parse row variables.
- Update make release to confirm remote and local are in sync.
- Make `walk_rc` public.
---
## v0.53.0 [2019-11-05]
### Breaking changes
- Interpret months as part of the semantic duration.
### Features
- Macros for type inference tests.
- Let-polymorphism with test example.
- Generalization, instantiation, and constraint solving.
- Type environment.
- Convert Rust AST to FlatBuffers format.
- Allow lexing and parsing of string polytypes according to polytype grammar rules.
- Add month support when adding durations to a time value.
- Interpret months as part of the semantic duration.
### Bug fixes
- Type variable constraints.
- Apply sub to both sides of constraint before unifying.
- Instantiate quantified vars, not free vars.
---
## v0.52.0 [2019-10-30]
### Features
- `Visitor` uses `Rc` for nodes.
- Add `EvalOptions`.
### Bug fixes
- Correctly lex `µs`.
---
## v0.51.0 [2019-10-24]
### Breaking changes
- Update the Flux SPEC to remove duration addition and subtraction.
- Turn duration value into a vector.
### Features
- Implementations for type substitutions and constraints.
- Add semantic analysis.
- Updated the duration value to include months and negative flag.
- Create a flatbuffers schema for AST.
- Add initial C binding for parsing an AST.
- Create a tool for updating `.flux` tests in-place.
- Add walk implementation.
- Turn duration value into a vector.
- Define initial Flux data types.
### Bug fixes
- Update libflux parser to match the Go parser.
- Allow data collected by `prometheus.scrape()` to be used by `histogramQuantile()`.
- Remove mock allocator.
- Validate url for `sql.from()`, `sql.to()`, and `socket.from()`.
---
## v0.50.2 [2019-10-24]
### Bug fixes
- Make `keep()` and `drop()` throw an error if merging tables with different schemas.
---
## v0.50.1 [2019-10-24]
### Bug fixes
- Add annotated errors to the execute package where it affects normal usage.
- Reorder variables in the allocator for atomic operations.
---
## v0.50.0 [2019-10-11]
### Features
- Add `experimental/prometheus` package.
- Add a memory manager to the memory allocator.
- Add an internal function for generating data.
- Switch to using discarding mode for transformations.
- Group key join on `_time`.
### Bug fixes
- Require `data` parameter in `monitor.check()`.
- Return the EOF error when reading metadata.
- Re-add missing import.
- Fix broken links in SPEC.
- Return error from cache.
- Update the `universe` package to use flux errors throughout.
- Parse escape characters in string interpolation expressions.
- Improve CSV error message for serialized Flux error.
- Have the interpreter return annotated Flux errors.
---
## v0.49.0 [2019-09-24]
### Features
- Optimize `filter()` to pass through tables when possible.
- Additional arrow builder utilities.
- Add a `benchmark()` function to the testing package.
- Add an arrow backed version of the table buffer.
### Bug fixes
- Fix `sql.from()` connection leak.
- Fix some of the memory leaks within the standard library.
- Fix `mqtt.to()` topic parameter.
---
## v0.48.0 [2019-09-20]
### Breaking changes
- Convert the Flux memory allocator into an arrow allocator.
### Features
- New dependency injection framework.
- Add planner options to Flux language.
- Make Flux `internal/promql/quantile` behavior match PromQL `quantile` aggregate.
### Bug fixes
- Passing context to WalkIR.
- Make `join()` reject input tables lacking `on` columns.
---
## v0.47.1 [2019-09-18]
### Bug fixes
- Pass dependencies to WalkIR
---
## v0.47.0 [2019-09-13]
### Bug fixes
- Introduce ParenExpression.
- Make fmt runs cargo fmt on Rust directories.
- Update `Hex.Dump` to `hex.EncodeToString`.
- Integrate the Promql transpiler into Flux.
---
## v0.46.2 [2019-09-12]
### Bug fixes
- Make `to` use URL validator.
- Add filesystem to default test dependencies.
---
## v0.46.1 [2019-09-11]
### Bug fixes
- Add a filesystem service.
- Do a pointer comparison for table objects instead of a deep compare.
---
## v0.46.0 [2019-09-10]
### Features
- Replace EnvironmentSecretService with EmptySecret….
- Source location for rust parser.
### Bug fixes
- Push error for bad string expression.
- Remove `token` parameter from `pagerduty.endpoint`.
---
## v0.45.2 [2019-09-10]
### Bug fixes
- Push the tag before running goreleaser.
- Additional opentracing spans for debugging query flow.
---
## v0.45.1 [2019-09-09]
### Bug fixes
- Ensure `http.post` respects the context.
---
## v0.45.0 [2019-09-06]
### Features
- Added Google Bigtable `from()`.
### Bug fixes
- Add `pagerduty.severityFromLevel()` helper function.
- Sleep function now gets canceled when the context is canceled.
- Categorize the undefined identifier as an invalid status code.
- Panic from `CheckKind` in `memberEvaluator`.
---
## v0.44.0 [2019-09-05]
### Features
- Add `http.basicAuth` function.
- Add measurement filters to `monitor.from` and `monitor.logs`.
### Bug fixes
- changed the default HTTP client to be more robust.
---
## v0.43.0 [2019-09-04]
### Features
- PagerDuty endpoint for alerts and notifications.
---
## v0.42.0 [2019-08-30]
### Features
- Add `stateChanges` function.
### Bug fixes
- Race condition in looking up types in `map`.
- Support bool equality expressions.
- Calculating a type variable's free type variables.
- Do not generate fresh type variables for member expressions.
- Array instantiation.
---
## v0.41.0 [2019-08-26]
### Features
- Add ability to validate URLs before making `http.post` requests.
- Evaluate string interpolation.
- Implement the `secrets.get` function.
- Added secret service interface.
- Add secrets package that will construct a secret object.
- Added a SecretService interface and a new dependencies package and a basic test of functionality.
- Add Slack endpoint.
### Bug fixes
- Make `reset()` check for non-nil data before calling `Release()`.
- Add test case for `notify` function.
- Add missing math import to test case.
- Make packages aware of options.
- Resolved `holtWinters` panic.
- Use non-pointer receiver for `interpreter.function`.
---
## v0.40.2 [2019-08-22]
### Bug fixes
- Resolved `holtWinters()` panic.
---
## v0.40.1 [2019-08-21]
### Bug fixes
- Use non-pointer receiver for `interpreter.function`.
---
## v0.40.0 [2019-08-20]
### Breaking changes
- Update compiler package to use true scope.
- Add `http` and `json` to prelude.
### Features
- Add `alerts.check()` function.
- Add `alerts.notify` function.
- Add `kaufmansER()` and `kaufmansAMA()` functions.
- Add `experimental.to()` function.
- Add `experimental.set()` function to update entire object.
- Add `experimental.objectKeys()` function.
- Add `tripleExponentialDerivative()` function.
- Add `json.encode()` function.
- Add `mqtt.to()` function.
- Add Bytes type.
- Update compiler package to use true scope.
- Add http endpoint.
- Add post method implementation.
- String interpolation.
### Bug fixes
- Avoid wrapping table errors in the CSV encoder.
- Remove irrelevant TODOs.
- `mode()` now properly considers nulls when calculating the mode.
- Add `http` and `json` to prelude.
- Rename all Flux test files to use `_test.flux`.
---
## v0.39.0 [2019-08-13]
{{% warn %}}
In Flux 0.39.0, `holtWinters()` can cause the query engine to panic.
**Flux 0.40.2 resolves this panic.**
{{% /warn %}}
### Breaking changes
- Implement the scanning components for string expressions.
### Features
- Add `tail()` function.
- Add framework for `http.post()` function.
- Implement `deadman()` function.
- Time arithmetic functions.
- Alerts package.
- Add an experimental `group()` function with mode `extend`.
- Implement the scanning components for string expressions.
- Add `chandeMomentumOscillator()` function.
- Add `hourSelection()` function.
- Add `date.year()` function
### Bug fixes
- Update object to use Invalid type instead of nil monotypes.
- Make it so the alerts package can be defined in pure Flux.
- Close connection after `sql.to()`.
---
## v0.38.0 [2019-08-06]
### Features
- Update selectors to operate on time columns.
- Add `relativeStrengthIndex()` transformation.
- Add double and triple exponential average transformations (`doubleEMA()` and `tripleEMA()`).
- Add `holtWinters()` transformation.
- Add `keepFirst` parameter to `difference()`.
- DatePart equivalent functions.
- Add runtime package.
- Add and subtract duration literal arithmetic.
- Allow `keep()` to run regardless of nonexistent columns.
If all columns given are nonexistent, `keep()` returns an empty table.
- Scanner returns positioning.
### Bug fixes
- Function resolver now keeps track of local assignments that may be evaluated at runtime.
- Fixed InfluxDB test errors.
- Add range to tests to pass in InfluxDB.
- Allow converting a duration to a duration.
- Catch integer overflow and underflow for literals.
---
## v0.37.2 [2019-07-24]
- _General cleanup of internal code._
---
## v0.37.1 [2019-07-23]
### Bug fixes
- Fixed InfluxDB test errors.
- Add range to tests to pass in InfluxDB.
---
## v0.37.0 [2019-07-22]
### Features
- Add PromQL to Flux transpiler and Flux helper functions.
- Add mutable arrow array builders.
- Created date package.
- Return query and result errors in the multi result encoder.
- Add `exponentialMovingAverage()`.
- Add full draft of Rust parser.
- Implement more production rules.
- AST marshalling.
- Parse statements.
- Parse integer and float literals.
- Add initial Rust implementation of parser.
---
## v0.36.2 [2019-07-12]
### Bug fixes
- Add helper methods for comparing entire result sets.
- Map will not panic when a record is `null`.
---
## v0.36.1 [2019-07-10]
### Bug fixes
- Add `range` call to some end-to-end tests.
- Fix implementation of `strings.replaceAll`.
---
## v0.36.0 [2019-07-09]
### Features
- Updated `movingAverage()` and added `timedMovingAverage`.
- `elapsed()` function.
- `mode()` function.
- `sleep()` function.
- Modify error usage in places to use the new enriched errors.
- Enriched error interface.
- End-to-end tests that show how to mimic pandas functionality.
- End-to-end tests for string functions.
### Bug fixes
- Fix `difference()` so that it returns an error instead of panicking when given a `_time` column.
- Added end-to-end tests for type conversion functions.
- Make `map()` error if return type is not an object.
- Fixed miscounted allocations in the `ColListTableBuilder`.
- Support formatting `with`.
### Breaking changes
- Updated `movingAverage()` to `timedMovingAverage` and added new
`movingAverage()` implementation.
---
## v0.35.1 [2019-07-03]
### Bug fixes
- Re-add `mergeKey` parameter to `map()` in deprecated state.
---
## v0.35.0 [2019-07-02]
### Breaking changes
- Remove `mergeKey` parameter from the `map()` function.
### Features
- Add `sql.to()` function.
- Add `movingAverage()` function.
- Add `strlen()` and `substring()` functions to the `strings` package.
### Bug fixes
- Remove `mergeKey` parameter from the `map()` function.
- Parse float types with PostgreSQL.
---
## v0.34.2 [2019-06-27]
### Bug fixes
- Parse float types with PostgreSQL.
---
## v0.34.1 [2019-06-26]
### Features
- Add custom PostgreSQL type support.
- Added MySQL type support.
- Nulls work in table and row functions.
### Bug fixes
- Fixed boolean literal type conversion problem and added tests.
- Diff should track memory allocations when it copies the table.
- Copy table will report if it is empty correctly.
---
## v0.33.2 [2019-06-25]
### Bug fixes
- Use `strings.Replace` instead of `strings.ReplaceAll` for compatibility.
---
## v0.33.1 [2019-06-20]
### Bug fixes
- Copy table will report if it is empty correctly.
---
## v0.33.0 [2019-06-18]
### Breaking changes
- Implement nulls in the compiler runtime.
### Features
- Add Go `regexp` functions to Flux.
- Add the exists operator to the compiler runtime.
- Implement nulls in the compiler runtime.
- Add nullable kind.
- Support "with" syntax for objects in row functions.
- Port several string functions from go `strings` library to Flux.
- Add exists unary operator.
### Bug fixes
- Add range to map_extension_with.flux.
- Row function resets records map with each call to prepare.
- Fix `joinStr`, including adding an EndToEnd Test.
- Fix `string_trimLeft` and `string_trimRight` so that they pass in InfluxDB.
- Add length check for empty tables in fill.
---
## v0.32.1 [2019-06-10]
### Bug fixes
- Identify memory limit exceeded errors in dispatcher.
---
## v0.32.0 [2019-06-05]
### Breaking changes
- Remove the control package.
### Bug fixes
- Changelog generator now handles merge commits better.
- Return count of errors when checking AST.
---
## v0.31.1 [2019-05-29]
### Bug fixes
- Do not call done after calling the function.
---
## v0.31.0 [2019-05-28]
### Breaking changes
- Copy the table when a table is used multiple times.
### Features
- Support for dynamic queries.
### Bug fixes
- Copy the table when a table is used multiple times.
---
## v0.30.0 [2019-05-16]
### Features
- Support for dynamic queries.
---
## v0.29.0 [2019-05-15]
### Breaking changes
- Make `on` a required parameter to `join()`.
### Features
- Add stream table index functions (
[`tableFind()`](/v2.0/reference/flux/stdlib/built-in/transformations/stream-table/tablefind/),
[`getRecord()`](/v2.0/reference/flux/stdlib/built-in/transformations/stream-table/getrecord/),
[`getColumn()`](/v2.0/reference/flux/stdlib/built-in/transformations/stream-table/getcolumn/)
).
- Construct invalid binary expressions when given multiple expressions.
### Bug fixes
- Properly use RefCount to reference count tables.
- Remove the race condition within the `(*Query).Done` method.
- Fix table functions test.
- Add `column` parameter to `median()`.
- Modify `median` to work with `aggregateWindow()`.
- `pivot()` now uses the correct column type when filling nulls.
- Add error handling for property list.
- Return the error from the context in the executor.
---
## v0.28.3 [2019-05-01]
### Bug fixes
- Fix request results labels to count runtime errors.
- An error when joining could result in two calls to finish.
---
## v0.28.2 [2019-04-26]
### Bug fixes
- Preallocate data when constructing a new string array.
---
## v0.28.1 [2019-04-25]
### Bug fixes
- Make executor respect memory limit from caller.
---
## v0.28.0 [2019-04-24]
### Features
- Allow choosing sample/population mode in `stddev()`.
### Bug fixes
- Fix `reduce()` so it resets the reduce value to the neutral element value for each new group key
and reports an error when two reducers write to the same destination group key.
---
## v0.27.0 [2019-04-22]
### Features
- Add `trimSuffix` and `trimPrefix` functions to the strings package.
- Add support for conditional expressions to compiler.
- Add conditional expression handling to interpreter.
### Bug fixes
- Enforce memory and concurrency limits in controller.
- Format conditional expression.
- `tagKeys` should include a call to `distinct`.
---
## v0.26.0 [2019-04-18]
### Breaking changes
- Aggregates now accept only a `column` parameter. `columns` not used.
### Features
- Add handling for conditional expressions to type inference.
- Add `if`/`then`/`else` syntax to Flux parser.
- Added a WalkIR function that external programs can use to traverse an opSpec structure.
- Add planner options to compile options.
- Add example on how to use Flux as a library.
- `duplicate()` will now overwrite a column if the as label already exists.
#### Bug fixes
- Format right child with good parentheses.
- Make staticcheck pass.
- Rename `json` tag so go vet passes.
- The controller pump could reference a nil pointer.
- Create a DependenciesAwareProgram so controller can assign dependencies.
- Make `Program.Start` start execution synchronously.
- Read the metadata channel in a separate goroutine.
- Remove dead code in controller so `staticcheck` passes.
- Allow Flux unit tests to pass.
- Require a Github token to perform a release.
- Change example name to make go vet pass.
- Make `csv.from` return decode error.
---
## v0.25.0 [2019-04-08]
## Breaking changes
- Fix logical operators (`and`, `or`) precedence.
## Bug fixes
- Omit space between unary operator and operand.
- Format AST preserving operator precedence.
---
## v0.24.0 [2019-04-01]
### Breaking changes
- Rename `percentile()` function to `quantile()`.
### Bug fixes
- Handle when a non-call expression is parsed as the pipe destination.
- Add error message to Compile methods for empty Spec.
---
## v0.23.0 [2019-03-26]
### Breaking changes
- Remove unused statistics from the struct.
### Features
- Define comparison operators between time types.
- Parse signed duration.
- Added `reduce()` function and supporting go API for implementation.
- Fix for recognizing locally scoped objects and arrays in a row function.
### Bug fixes
- Columns in percentile signature and more strict param checking.
- Report the error received when parsing a bad regex literal.
- Remove unused statistics from the struct.
---
## v0.22.0 [2019-03-18]
### Features
- Added a math package and ported all 64 bit go math library functions.
### Bug fixes
- Make read-like access patterns for objects thread-safe.
---
## v0.21.4 [2019-03-06]
### Bug fixes
- Test union.flux correctly uses sort.
- Pivot orders rowKey and columnKey by the input parameters, rather than the table column order.
- Deterministic sorting of input tables in join.
- Group key comparison works regardless of column ordering.
---
## v0.21.3 [2019-03-05]
### Bug fixes
- Fix test to pass in InfluxDB.
- Write table and result name in each row of CSV output.
- Make time() function accept any format that parser accepts.
- Return errors when evaluating functions.
- Prevent a deadlock in the array expression parser.
---
## v0.21.2 [2019-03-01]
### Bug fixes
- Add AST compiler to mappings.
---
## v0.21.1 [2019-03-01]
### Bug fixes
- Make ASTCompiler marshalable.
- Fix a controller test to be less flaky.
- `from()` must send deep table copies to its downstream transformations.
---
## v0.21.0 [2019-02-25]
### Breaking changes
- Support attaching arbitrary query metadata from the executor.
### Features
- Support attaching arbitrary query metadata from the executor.
- Socket source.
### Bug fixes
- Add locks to make diff threadsafe.
---
## v0.20.0 [2019-02-20]
### Features
- AST match.
- Generate ASTs from Flux test files for external consumption.
- Add compile subcommand that compiles Flux to spec.
### Bug fixes
- Change loadStorage and loadMem to be options so that they are modifiable.
- Generate skipped tests; skip in test driver.
---
## v0.19.0 [2019-02-11]
### Breaking changes
- Make `window()` parameters match SPEC.
- Split FromProcedureSpec into logical and physical specs.
### Features
- Add `contains()` function to check for membership in lists.
- `test` keyword.
### Bug fixes
- Raw query test case.
---
## v0.18.0 [2019-02-07]
### Features
- Add strings package with functions to trim/change string case.
- Make duration conversion public.
- Add assertEmpty method and use it with testing.test.
- Expose literal parsers used within the parser.
- Add testing.diff function.
- Execute command.
### Bug fixes
- Refactor the controller to remove data races.
- Member expressions using a string literal use the incorrect end bracket.
- Skip lambda evaluation when referencing nulls.
- Options editor should use ast.Expression.
- Fix decoder bug where a default table ID is given when none is required.
- Add close to SourceIterator.
---
## v0.17.0 [2019-01-22]
### Features
- Checks for option dependencies.
- Add query success and error metrics.
- Track nested blocks in the parser.
- Update `aggregateWindow()` to include `createEmpty` as parameter to allow for null results.
- Add query function count metrics.
### Bug fixes
- Multiplicative operators are above additive operators in precedence.
- Fix panic when copying lambda.
- Only print a package's public exports.
- Cannot access imports of imports.
- Check for schema collision when appending columns to a table.
- Process test helper had bad logic to check for errors.
- Handle rune errors correctly when decoding an illegal token.
---
## v0.16.1 [2019-01-17]
### Bug fixes
- Copy packages for importer copy.
---
##v0.16.0 [2019-01-17]
### Features
- Adds various v1 meta queries helper functions
### Bug fixes
- Fixes various UX issues.
- Object polytype.
- Fix edge case panic in `assertEquals`.
- Check for equality in time columns correctly.
- Fix bug where `assertEquals` did not check tables without a match in both streams.
- Clear return for each REPL command.
---
## v0.15.0 [2019-01-16]
### Features
- Add rule to remove filter true nodes.
- Checks for variable reassignment and option declarations below package block.
### Bug fixes
- Move a test file into the testing/testdata folder.
---
## v0.14.0 [2019-01-14]
### Breaking changes
- Implement and require builtin statements.
- Fix keys to output group key.
- Organizes builtin code into Flux packages.
- Change flux command to be a REPL.
### Features
- Implement and require builtin statements.
- Added a new utility library for generating test data.
- `columns()` function.
- Add fill function to set a default value for null values in a column.
- Organizes built-in code into Flux packages.
- Change flux command to be a REPL.
- Refactored the table builder interfaces to support null value creation.
- Aggregates process empty/all-null tables by creating a null row.
- Show nulls in REPL as empty string.
- Add ability to define built-in packages.
- Treat omitted values with no defaults as nil in CSV.
- Build arrow columns with null values.
- Converting limit to use arrow arrays.
- TableBuilder interface and ColListTableBuilder implementation support creation of nil values.
### Bug fixes
- Count nulls in the count aggregate.
- Fix keys to output group key.
- Adding test for type mismatch in group.
- Nest extern blocks for each level in scope.
- Memory leak in limit when slicing.
- Prettier formatting for package.
- Change Package.Path to be json omitempty.
---
## v0.13.0 [2019-01-07]
### Breaking changes
- Add File and Package nodes to the AST.
### Features
- Embed errors into the ast from the parser.
- Add no-points optimization for `from() |> keys()`.
- Add File and Package nodes to the AST.
- Add a function for checking for errors within the AST.
### Bug fixes
- Remove unneeded use of memory allocator.
- Allow the memory allocator to be nil for arrow arrays.
- Fix several bugs in copy methods add tests.
- Fix a flaky test in the controller shutdown.
---
## v0.12.0 [2019-01-02]
### Features
- Slice utils.
- Parse string literal object keys.
- Add tests for multi-line and escaped strings.
- Arrow helper method.
- Converting all aggregates to use arrow arrays.
### Bug fixes
- Embed plan.DefaultCost in input and output functions.
- Side effect statements are now copied between related interpreter scopes.
---
## v0.11.0 [2018-12-18]
### Features
- Add utility methods for converting a slice into an arrow array buffer.
### Bug fixes
- Do not panic with unbalanced parenthesis.
- Respect positive timeout for toHTTP.
---
## v0.10.0 [2018-12-17]
### Breaking changes
- Change "label" to "column" for state tracking functions.
### Features
- Plan validation.
- Testing framework no longer checks output.
- Integrate arrow arrays into the table builder.
- Support packages and imports.
### Bug fixes
- Cancel all queries after timeout elapses.
- `makefile` for generating the scanner after clean was incorrect.
---
## v0.9.0 [2018-12-11]
### Features
- Option Editor.
### Bug fixes
- Return the source attribute in the location correctly.
---
## v0.8.0 [2018-12-11]
### Features
- Rule to chain group operations.
- Add package and import support to the semantic graph.
- Add `assertEquals` function to transformations.
- Parse import and package statements
- Walk pattern for AST.
- AST formatting.
- Switch over to the new parser.
### Bug fixes
- Make controller return planner failures.
- Collision between external and fresh type vars.
- fmt for import and package.
- Add import/package nodes to ast.Walk.
- Improve panic message when the wrong column type is used.
- Check nil results when computing stats.
- Suppress group push down for \_time and \_value.
- Terminal output functions must produce results.
- Fix race in interpreter.doCall.
- Fix ast.Walk for Assignemnt rename.
- Improve error message for missing object properties.
- Add unary logical expression to the parser.
- Variable declarator node needs to duplicate the location information.
---
## v0.7.4 (2018-12-04)
### Bug Fixes
- Add missing comparison operators.
---
## v0.7.3 (2018-12-04)
### Bug Fixes
- Fix the ident statement to use expression suffix.