Commit Graph

706 Commits (f59c313650506bb4aefcd1d607d386fc25d20780)

Author SHA1 Message Date
Yiqun (Ethan) Zhang baa8323431
fix: group resultset produces 1 table per group (#18968)
This helps resolve #18098
2020-07-29 15:31:29 -05:00
Jonathan A. Sternberg 0cdbd496f4
fix(query): paginate bucket results in the bucket lookup (#19111)
The `buckets()` command would use a bucket lookup that wrapped the
`FindBuckets` API. It did not use the pagination aspect of this API
correctly. When the underlying implementation was changed to a version
that correctly implemented pagination, this broke the query `buckets()`
command. Since it was query that used the API incorrectly rather than a
regression in the `FindBuckets` implementation, this fixes the usage to
correctly use pagination.
2020-07-29 11:23:13 -05:00
Yiqun (Ethan) Zhang 8a27388601
feat: log query plan in metadata (#19100) 2020-07-27 17:14:49 -05:00
George 4a845f64cf
chore: simplify to transform dependencies (#18820)
* chore: remove bucket and org cruft from experimental to transformation

* chore: remove URM dependency from bucket auth middleware
2020-07-24 11:49:23 +01:00
Jonathan A. Sternberg 8678a22ee3
feat(storage/flux): add tests for min/max pushdowns (#19028) 2020-07-23 16:07:30 -05:00
Christopher M. Wolff 8b106bcee1
feat(storage): add mean aggregate array cursor and tests (#19019) 2020-07-23 09:49:53 -07:00
Adrian Thurston c693f0b080
test: use experimental.chain in flux e2e tests to allow a single pass (#18898)
Force the writing of data and running of the test to happen sequentially. As
the results come out, collect them and report an error only if the diff results
are not empty.
2020-07-23 15:58:21 +03:00
yukta dbcd363dad feat(query/stdlib): update flags.yml with mergleFilterRule and add mergeFilterRule to rules.go with corresponding unit tests. 2020-07-22 08:16:35 -07:00
yukta 6448a155c3 feat(query/stdlib): update flags.yml with mergleFilterRule and add mergeFilterRule to rules.go with corresponding unit tests. 2020-07-22 08:16:35 -07:00
Paul Hummer aa33f440a0 build(flux): update Flux to v0.74.0 2020-07-21 09:05:26 -06:00
jlapacik 36987bec0f feat: add offset parameter to window cursors 2020-07-20 12:23:37 -07:00
jlapacik 8907eee68d feat: rewrite rule for pushing down window offset 2020-07-20 12:23:37 -07:00
Christopher M. Wolff c695be2f56
feat(storage/reads): add min/max aggregate array cursors (#18957) 2020-07-20 10:17:04 -07:00
Faith Chikwekwe 43b5ef4db4 fix(query): produce error not panic for influxdb.to() 2020-07-15 08:50:15 -07:00
Paul Hummer 0265acf744
Merge pull request #18934 from influxdata/flux-staging/v0.73.0
build(flux): update Flux to v0.73.0
2020-07-14 11:40:27 -06:00
Paul Hummer 21a1faac6e chore: fix accidental typo 2020-07-14 11:20:42 -06:00
Paul Hummer ed66937378 chore: skip unbounded tests 2020-07-14 10:30:47 -06:00
Christopher M. Wolff a68ecc3d03
fix(query/stdlib): exclude logic and errors in Flux function to() (#18937) 2020-07-13 14:09:40 -07:00
Paul Hummer 4264f63822 build(flux): update Flux to v0.73.0 2020-07-13 11:48:19 -06:00
jlapacik 9f9be91828 feat: remove feature flags for first and last pushdowns 2020-07-07 14:15:48 -07:00
jlapacik 3246b3c7ad refactor: remove feature flag for certain pushdowns 2020-07-01 12:59:39 -07:00
Jonathan A. Sternberg e4e28526f8
build(flux): update Flux to v0.71.0 (#18809)
Additional changes:

* fix(query/stdlib): update rewrite rules for schema mutation

The schema mutator was wrapped in a dual implementation spec so the
rewrite rules were type asserting on the wrong type.
2020-07-01 13:12:50 -05:00
Jonathan A. Sternberg 1cd9569bff
feat(flags): add a feature flag for memory optimized schema mutation (#18794) 2020-06-29 16:53:45 -05:00
Jonathan A. Sternberg 5aeca082c8
chore: update staticcheck and fix newly identified lint checks (#18737) 2020-06-26 18:54:09 -05:00
jlapacik 3958c76604 feat: turn on storage capability for first 2020-06-25 14:37:07 -07:00
Jonathan A. Sternberg 61362e4d63
feat(query/stdlib): add a rule to reorder group and window (#18613)
This rule reorders group and window so it will switch from using
`ReadGroup` to using `ReadWindowAggregate` when the intent is to
aggregate a grouped window. It will then add a group node that groups by
the given columns and the start and stop columns and then reperform the
aggregate. This is more performant than performing the group first.
2020-06-22 11:11:27 -05:00
Yiqun (Ethan) Zhang 95d97c6e29
feat(query): planner rule to push down window and bare first() and la… (#18534) 2020-06-17 14:00:40 -05:00
Adrian Thurston 5d1a759170
feat: annotate context with feature flags when handling flux queries (#18506)
Annotate the context with feature flags when handling flux queries in influxdb.
Taking advantage of this in flux end-to-end tests. Using a custom flagger that
can set overrides based on the test case that is about to be run, allowing us
to enable features in the end-to-end tests.
2020-06-17 16:55:29 +03:00
jlapacik a19604c0ea refactor: windowed read operation should include aggregate name 2020-06-16 18:05:21 -07:00
Christopher M. Wolff 8fa5d3f591
feat(query): add test and feature flag for pushing down sum (#18484) 2020-06-12 13:28:03 -07:00
Johnny Steenbergen b1c7800bbe chore(query): skip flakey test
references: #18463
2020-06-11 11:26:38 -07:00
Yiqun (Ethan) Zhang 82185dd434
feat: add feature flag for fill() (#18445) 2020-06-10 16:00:43 -05:00
Yiqun (Ethan) Zhang 07c01cf79d
chore: update flux to v0.69.2 (#18441) 2020-06-10 15:36:17 -05:00
Jonathan A. Sternberg db686349e7
feat(storage/flux): support full aggregate window push down (#18399)
This enables a new rule that will push down the full `aggregateWindow`
query including the `duplicate` and `window(every: inf)` that recombines
the tables. When the full rule is used, the table is not split into
tables for each window and instead retains itself as a single table. The
start or stop column is renamed to `_time` and `_start` and `_stop` will
be the boundaries of the query.
2020-06-10 13:21:41 -05:00
Faith Chikwekwe 1bf2ce1a32 feat(query): register bare aggregate 2020-06-09 14:24:41 -07:00
Jonathan A. Sternberg 077949cd96
chore(flux): downgrade flux to v0.68.0 (#18413)
* revert: "feat: add feature flag for fill() (#18386)"

This reverts commit 8f9e73af27.

* chore(flux): downgrade flux to v0.68.0
2020-06-09 11:38:55 -05:00
Yiqun (Ethan) Zhang 8f9e73af27
feat: add feature flag for fill() (#18386) 2020-06-08 21:57:19 -05:00
Yiqun (Ethan) Zhang 78526a2210
chore: update flux to v0.69.1 (#18403) 2020-06-08 20:57:56 -05:00
jlapacik eba496d1bd
feat: grouped aggregate rewrite rules (#18342)
* feat: flags for pushing down new aggregates

* refactor: grouped aggregate rewrite rules

The storage operation ReadGroup aggregates per series on the storage
side. The planner will rewrite grouped aggregate queries to call
ReadGroup, which will perform a partial aggregation, followed by
another operation that will perform the rest of the aggregation on
the compute side.

* feat: storage capabilities for grouped aggregates

* fix: changes from review

* feat: group read operation name should include aggregate
2020-06-04 14:36:15 -07:00
Jonathan A. Sternberg efbc4ae7c1
feat(storage/flux): implement create empty for the window table reader (#18288)
This implements create empty for the window table reader and allows this
table read function to be used when it is specified. It will pass down
the create empty flag from the original window call into the storage
read function.

This also fixes the window table reader so it properly creates
individual tables for each window. Previously, it was constructing one
table for an entire series instead of one table per window.

Tests have been added to verify three edge case behaviors. The first is
the normal read operation where all values are present. The second is
when create empty is specified so null values may be created. The third
is with truncated boundaries to ensure that storage is read from and the
start and stop timestamps get correctly truncated.
2020-06-01 17:57:50 -05:00
jlapacik baf400c4d4 chore: update flux to v0.68.0 2020-05-28 14:18:54 -07:00
Yiqun (Ethan) Zhang 41156ca646
feat(query): implement window count aggregate pushdown (#18043) 2020-05-28 13:42:38 -05:00
Christopher M. Wolff 53165bfb7f
feat(query): add a planner rule to push down bare aggregates (#18144) 2020-05-21 23:03:09 -07:00
Jonathan A. Sternberg 0bb847b7e7
Merge branch 'master' into feat/use-algo-w 2020-05-21 10:33:13 -05:00
Christopher M. Wolff 49df5e51eb
feat(query): add conditional option to LoggingProxyQueryService (#18170) 2020-05-20 10:22:21 -07:00
Adrian Thurston b776cf46f5
feat: added PushDownGroupAggregate planner rewrite rule (#18085)
Added a (disabled) planner rule that matches:
   ReadGroupPhys -> { count }

It uses the same physical spec node for group to implement the aggregate. The
rule requires:
 * the pushDownGroupAggregateCount feature flag enabled
 * no existing aggregate present in the ReadGroup
 * use of the "_value" column only
2020-05-20 16:57:16 +03:00
Jonathan A. Sternberg 342c3c2630
fix(query): do not free the column reader in the no content encoders (#18116)
The column reader passed to `flux.Table.Do` is automatically released.
The function passed to the column reader should never release it
manually. This causes a double release which causes the table to be
erroneously freed when it might be referenced by another transformation.

In particular, this affected the following:

    tables
    |> yield()
    |> to()

This is because this would produce a buffered table with two references
and pass it to both `yield()` and `to()` because `yield()` is a
pseudo-node that doesn't really exist. The real graph looks more like:

    tables |> yield()
    tables |> to()

The `yield()` would double release which would release the `to()`
transformation's copy of the column readers. The `to()` method would
then be invoked with an invalid column reader.
2020-05-15 13:55:37 -05:00
Adrian Thurston b43f79b980
fix: need to rebuild the query request before the second e2e test run (#18112)
The e2e test driver in influxdb runs the tests twice to get past the fact that there
is no way to force order between the write to storage and the read back. When
the json.Marshal call became mandatory it was added to the first run, but not
the second.
2020-05-15 18:50:33 +03:00
Jonathan A. Sternberg 09b8e40933
fix(query/stdlib): update to function to use the refactored row functions (#18086)
The row functions were refactored to remove state from the dynamic
function. This updates the code that invoked row functions.
2020-05-13 14:11:14 -05:00
jlapacik 20a583dbcf chore: update flux to latest revision 2020-05-12 11:22:37 -07:00