Commit Graph

10 Commits (jdstrand/update-golang-jwt-1.10)

Author SHA1 Message Date
Sam Arnold b7e7de24d6
refactor: separate coarse and fine permission interfaces (#20996) 2021-03-22 09:52:33 -04:00
Jonathan A. Sternberg c381389f35
Subquery ordering with aggregates in descending mode was wrong
The sort order of points when performing aggregates never took into
account if they were ascending or descending so when multiple series
were aggregated, it would ensure they were sorted in the correct order.
But it wouldn't reverse this order when descending was used.

Additionally, it seems that the iterator template and the iterator file
itself became out of sync. It seems the template was not reverted
correctly from a previously incorrect change and only the float type was
changed to the correct version and the tests used the float version.
2019-07-17 09:55:38 -05:00
Jonathan A. Sternberg 65b6b1dbb0
Use the timezone when evaluating time literals in subqueries 2019-04-22 10:45:40 -05:00
Jonathan A. Sternberg e153f3fa10
Fix the sort order for aggregates so that they are sorted by tag and then time
The reduce iterators would read in the points for a window, which
matched the grouping of the outermost query, and then it would sort them
by the time before emitting the points.

When there were multiple series, this would sometimes cause a conflict
because it would change the sorting of the inner query output when
selectors were used within a subquery. Then, these emitted points would
be output in the wrong order and they wouldn't join correctly when
multiple cursors were used.

This fixes it so the sorting happens per series grouping rather than on
all of the points together so they retain their tag order which is the
correct sorting method.
2019-04-16 12:25:32 -05:00
Jonathan A. Sternberg 9f1ac41b85
Pass the query authorizer to subqueries
The query authorizer was not being properly passed to subqueries so
rejections did not happen when a subquery was the one reading the value.
Similarly, the max series limit was not being propagated downwards
either.
2018-12-07 15:09:35 -06:00
Jonathan A. Sternberg 22fc9f6a19
Strip tags from a subquery when the outer query does not group by that tag
The following would, erroneously, not strip the tag from the inner
query:

    SELECT value FROM (SELECT value FROM cpu GROUP BY host)

The inner query was supposed to group by the host tag, but the outer
query should strip it away since it is not being grouped by anymore.
This fixes things so that the result will have the tags stripped away
when they are not requested in the grouping.
2018-10-04 10:05:46 -05:00
Jonathan A. Sternberg 634471f12e
Fix subquery functionality when a function references a tag from the subquery
It has previously been allowed for a subquery to use a tag within a
function (such as `count()`) when the tag is from a subquery and the
subquery itself references a field at some point to perform the join.

This functionality regressed in 1.6 because of a change in how
subqueries were executed that forgot to treat a tag the same as a string
field.

This fixes that regression and adds a test case to avoid hitting that
regression again.
2018-10-04 10:05:20 -05:00
Jonathan A. Sternberg 0f304690c5 Enable casting values from a subquery
This also fixes the cursor system to abandon iterators that will not
produce meaningful results since the variables are all unknown types.

This creates a weird behavior that existed in previous releases and we
are keeping here for backwards compatibility. If a subquery referenced a
field that didn't exist in the subquery, it will return nothing. But, if
there are two subqueries and one of them has the field exist and the
other doesn't, the second will return all null values.
2018-03-30 16:58:37 -05:00
Jonathan A. Sternberg 2fb67dd4be Fix subquery conditions with the cursor refactor 2018-03-28 13:13:46 -05:00
Jonathan A. Sternberg d4db76508f Add some unit tests to subqueries
This is not complete, but it is a starting point for more thorough tests
of subqueries.

This also reorders the use of `cmp.Diff` so the `want` is first and
`got` is second. This way, the `want` shows up as a minus sign in the
diff rather than, confusingly, as a plus sign.
2018-03-27 14:56:27 -05:00