Commit Graph

798 Commits (0f0e9bb96b8cbe6bb9f54e488629aa01470c1b82)

Author SHA1 Message Date
Jonathan A. Sternberg f84556fe22 Update binary expressions to handle mixed math between integers and floats
This also changes it so all NumericLiterals are treated as a float
rather than sometimes being cast to an integer.

Fixes #5740.
2016-02-19 14:32:22 -05:00
Jonathan A. Sternberg 8fc6a0f648 Merge pull request #5732 from influxdata/js-5730-binary-expr-column-name
Assign a name to columns with binary expressions in them
2016-02-19 14:30:43 -05:00
Jonathan A. Sternberg e58f66845c Merge pull request #5658 from influxdata/js-mean-iterator
Optimize the mean() call by moving the calculation into the shard iterator
2016-02-18 17:27:46 -05:00
Ben Johnson ae7b027742 Merge pull request #5366 from gabelev/lint_influxql
Refactoring influxql package to enable golint
2016-02-18 14:24:37 -07:00
Gabriel Levine a9fcc3229a Enable golint for influxql package. 2016-02-18 15:52:37 -05:00
Joe LeGasse dc8ed7953d Remove custom binary-conversion functions
Also cleaned up some excess allocations, and other cruft from the code
2016-02-18 13:56:35 -05:00
Jonathan A. Sternberg 983f810539 Assign a name to columns with binary expressions in them
The name of the column will be every measurement located inside of the
math expression in the order they are encountered in within the
expression.

Also handle `*influxql.ParenExpr` in the function
`(*influxql.Field).Name()`

Fixes #5730.
2016-02-18 10:11:28 -05:00
Ben Johnson eb221a5adb Merge pull request #5663 from benbjohnson/query-executor
Refactor QueryExecutor (WIP)
2016-02-17 16:30:20 -07:00
Ben Johnson e3b4b71c13 refactor query executor
This commit moves the `QueryExecutor` to the `cluster` package
and provides an interface to it inside the `influxql` package.
2016-02-17 15:13:56 -07:00
Ben Johnson f7e04abef7 remove NaN from query engine
This commit removes `math.NaN` returns from float iterators.
2016-02-17 14:11:31 -07:00
Jonathan A. Sternberg ceb173c50a Add the aggregated variable to the protobuf definition 2016-02-16 10:32:59 -05:00
Jonathan A. Sternberg 18c7c554ba Optimize the mean() call by moving the calculation into the shard iterator
A new attribute has been added to points to track how many points were
used to calculate that point. This is particularly useful for finding
the mean as we can then split mean calculation into two phases: one at
the shard level and a second at the shards level.

This optimization is now used so we don't have to hold so many points in
memory while calculating the mean.
2016-02-16 10:32:34 -05:00
Jonathan A. Sternberg 559a11d0ab Pass the implicit end time from the query executor to the select call
The select call and the query executor would both calculate the time
range, but in separate ways. The query executor needed some way to pass
in the implicit end time that is placed there by the query executor.

Fixes #5636.
2016-02-12 16:03:24 -05:00
Jonathan A. Sternberg c267e1eb5a Merge pull request #5652 from influxdata/js-5640-derivative-iterator
Support derivative() call for integer fields in the new query engine
2016-02-12 14:59:35 -05:00
Jack Zampolin 30a31d3acf Merge pull request #5654 from influxdata/jz-delete-from
Remove DELETE FROM from query spec
2016-02-12 10:47:57 -08:00
Jack Zampolin 014bbd3ef9 Remove DELETE FROM from query spec 2016-02-12 10:10:47 -08:00
Jonathan A. Sternberg 42b9166000 Support derivative() call for integer fields in the new query engine
Fixes #5640.
2016-02-12 11:36:59 -05:00
Jonathan A. Sternberg b70d83af6a Merge pull request #5633 from seiflotfy/fix5630
Make sure parenthesized SELECT arguments are evaluated properly without panic
2016-02-11 18:57:34 -05:00
Seif Lotfy 18f22a22fb Make sure parenthesized SELECT arguemnts are evaluated properly without panic
Fixes #5630
2016-02-11 17:41:33 -06:00
Jonathan A. Sternberg f5d8a4a6c0 Clear the start and end times for derivative calls
Derivatives rely on the underlying iterator to handle start and end
times. They do not perform them or organize points into groups. In
certain circumstances, the start time or end time that got implicitly
passed could be on an uneven interval with the first point returned by
the aggregate, which caused the entire iterator not to be read.

This fixes #5571.
2016-02-11 16:17:15 -05:00
Jonathan A. Sternberg 846ab5da8a Merge pull request #5639 from influxdata/js-fix-fill-casting
Cast number fill values for the fill iterator
2016-02-11 15:59:05 -05:00
Jonathan A. Sternberg 73ee204fbc Cast number fill values for the fill iterator
Querying an integer field with a fill value will cause a cast error
because the underlying type is a float64 rather than an int64. Add a
function that will coerce the value to the correct type.

It may be more appropriate in the future to have the fill iterator read
the underlying iterator and cast to the appropriate type rather than
coerce the fill value to the correct type, but this solution works for
our current scenario well.
2016-02-11 15:21:50 -05:00
Sergei Egorov eef0e41a7e Optimize ReducePercentile method: do not call len() twice + move sorting after index check 2016-02-11 20:05:34 +02:00
Ben Johnson d9a6a7340f add canonical paths 2016-02-10 11:30:52 -07:00
Ben Johnson 5a0d1ab7c1 rename influxdb/influxdb to influxdata/influxdb
This commit changes all the import and URL references from:

    github.com/influxdb/influxdb

to:

    github.com/influxdata/influxdb
2016-02-10 10:26:18 -07:00
Jonathan A. Sternberg d79eb29a23 Add documentation comments to influxql.Series and influxql.SeriesList 2016-02-10 09:40:31 -07:00
Jonathan A. Sternberg 98810a363a Correct the AuxIterator test and adding some additional locks
The additional locks shouldn't be necessary due to how the code is used,
but should prevent any potential data races in case we accidentally do
something bad.
2016-02-10 09:40:31 -07:00
Jonathan A. Sternberg ed151598ff Modify the AuxIterator to include a Start method
The AuxIterator streams points to the underlying iterators. When it
started automatically, race conditions occurred between the stream
closing the iterators and creating iterators from the AuxIterator.
2016-02-10 09:40:30 -07:00
Ben Johnson b3d5aa82b7 improve performance of LIMIT with no dimensions 2016-02-10 09:40:30 -07:00
Jonathan A. Sternberg 2e7cf5328c Fix go vet issues on 1.4
go 1.5 was being used to develop the query engine branch, but we aren't
using 1.5 for master at the moment. This fixes issues that go vet brings
up in 1.4 that don't exist in 1.5.
2016-02-10 09:40:30 -07:00
Jonathan A. Sternberg ae2d894671 Improved influxql package code coverage to 70% 2016-02-10 09:40:30 -07:00
Ben Johnson d1b9e7048f InfluxQL README 2016-02-10 09:40:30 -07:00
Jonathan A. Sternberg 5c9cdd05c2 Modify the fill iterator to not produce empty name/tags for a time range
If a name/tag combination does not have any points in the time range at
all, fill will not generate points for it.
2016-02-10 09:40:30 -07:00
Jonathan A. Sternberg 5b756e0fbe Improve test coverage in influxql package 2016-02-10 09:40:29 -07:00
Jonathan A. Sternberg 43f34481e1 Fixed the final two failing tests in influxql 2016-02-10 09:40:29 -07:00
Jonathan A. Sternberg d1f7c445e7 Modify iterators to work across shards
Aux iterators now ask the iterator creator what series will be returned
and determine which aux fields to create based on the results.

The `tsdb.Shards` struct also creates a call iterator around the
iterators returned from each shard.
2016-02-10 09:40:29 -07:00
Jonathan A. Sternberg c2d1206177 Implement the fill iterator
Fill requires an additional function for IteratorCreator to retrieve the
series that will be returned from the iterator. When fill is required
for an aggregate, the IteratorCreator will be asked what series will be
returned by the created iterator.
2016-02-10 09:40:29 -07:00
Ben Johnson 627cd9d486 add dedupe iterator 2016-02-10 09:40:29 -07:00
Jonathan A. Sternberg 21d2a4c3de Sort MergeIterator by tags after name and before the window 2016-02-10 09:40:28 -07:00
Ben Johnson 607750ab1b add SHOW MEASUREMENTS iterator 2016-02-10 09:40:28 -07:00
Jonathan A. Sternberg 86cec8cea5 Fix reduce slice iterators to also separate by name 2016-02-10 09:40:28 -07:00
Jonathan A. Sternberg d8337acf90 Emit all points of a certain name for MergeIterators
When multiple sources are used, emit all points for a certain source
(like cpu) before another source (like mem) regardless of which window
they are in. If the sources are the same, then sort by window.

Continue to ignore tags since we don't need to sort nicely by tags with
a MergeIterator, only SortedMergeIterator.
2016-02-10 09:40:28 -07:00
Jonathan A. Sternberg c602503c7c Fix reduce iterators to separate by name
Previously reduce iterators just separated points by tags. If you had
identical tags but different names, it would group those together so you
could have these two points:

    cpu value=1
    mem value=2

When you performed a `mean(value)` call and included both cpu and mem as
sources, it would return one mem series with a value of 1.5 instead of
two serieses.
2016-02-10 09:40:28 -07:00
Jonathan A. Sternberg 5605bbb22e Implement casting support for different iterator types
Out of a list of iterators, an overarching iterator type is chosen and
only iterators of that type are returned for the merge iterator. If a
type can be cast to another type, an extra cast iterator is created to
handle that casting.

The only supported cast is from integers to floats.
2016-02-10 09:40:28 -07:00
Jonathan A. Sternberg dbb9b36d84 Support integers with top() and bottom() and fix point ordering
top() and bottom() point ordering was incorrect and using an inefficient
method of sorting. It has now been updated to use a heap and ordering is
being done by value first and time second (with earlier times always
taking priority).

Removed unit tests that test using `time` inside of the query to get the
real time instead of the interval time and only allowing the default
behavior. We will have another mechanism to get the real time during an
interval, but the current method is deprecated.

The top() and bottom() methods now have integer support.
2016-02-10 09:40:27 -07:00
Jonathan A. Sternberg f41070fb56 Additional test coverage for point 2016-02-10 09:40:27 -07:00
Jonathan A. Sternberg a1cdc71ae5 Add binary expr tests to influxql package
No boolean operator tests because the parser doesn't currently allow it.
I am currently keeping the code that performs this for now until we
decide whether to allow boolean operators inside of a select clause. It
would be easy to have the new query engine do something like this:

    SELECT mean(value) < 10 FROM cpu GROUP BY time(1m)

And then you would have it return true or false for each interval, but
the same can be done through a where clause too.
2016-02-10 09:40:27 -07:00
Jonathan A. Sternberg f7a3918e40 Basic testing for binary expressions
Use Iterators().ReadAll() in select unit tests.
2016-02-10 09:40:27 -07:00
Ben Johnson a0fe0ca437 fix new query engine test regressions 2016-02-10 09:40:27 -07:00
Ben Johnson 6204350d65 fix math operations 2016-02-10 09:40:27 -07:00
Ben Johnson b4cb770a7f refactor aux iterators 2016-02-10 09:40:27 -07:00
Jonathan A. Sternberg 43ae104e31 Additional test coverage for DataType 2016-02-10 09:40:27 -07:00
Jonathan A. Sternberg 8e925065a0 Remove the join iterator since it is no longer used 2016-02-10 09:40:27 -07:00
Jonathan A. Sternberg aa3c8d69b8 Additional select tests for influxql 2016-02-10 09:40:26 -07:00
Jonathan A. Sternberg 76b49b3ab3 Fixed a bug in first() and last() where the time was lost
last() would always return the last output of the iterator (which isn't
necessarily the last time value due to how the merge iterator works) and
first() would always return the first output of the iterator (wrong for
the same reason).

Now the time is kept by the reduce function and the times are wiped as
part of the reduce iterator after the value has been found.
2016-02-10 09:40:26 -07:00
Jonathan A. Sternberg 67c1042435 More work 2016-02-10 09:40:26 -07:00
Jonathan A. Sternberg 0e1910cb92 More work on improving the iterator unit tests 2016-02-10 09:40:26 -07:00
Jonathan A. Sternberg 3dd6aa17f3 Test the merge iterator for every type instead of just floats 2016-02-10 09:40:26 -07:00
Jonathan A. Sternberg 03ad7a4e40 Move the integerReduceSliceFloatIterator to call_iterator.go
It matches more in functionality to the functions in call_iterator.go
than iterator.go. iterator.go mostly has base iterators and
call_iterator.go has iterators related to functional calls, which is
the only time integerReduceSliceFloatIterator is used.
2016-02-10 09:40:26 -07:00
Jonathan A. Sternberg fa79aae584 Expanding test coverage for the influxql/iterator.go
SortedMergeIterator is now tested and all of the IteratorOptions methods
are now tested explicitly for functionality.
2016-02-10 09:40:26 -07:00
Ben Johnson b8918a780c integer support 2016-02-10 09:40:25 -07:00
Jonathan A. Sternberg 97752df03d Repair regressions in derivatives with group by tests
Also fixes the `first()` and `last()` calls to do the same thing as
`min()` and `max()` by returning the time corresponding to the start of
the interval rather than the point's real time.
2016-02-10 09:40:25 -07:00
Jonathan A. Sternberg be22097338 Reset the iterator duration to zero when no interval is used 2016-02-10 09:40:25 -07:00
Jonathan A. Sternberg e0ac29dd2d Implement most of top() and bottom()
This does not implement the time selector, but everything else is
implemented. Unfortunately, there are no tests for bottom() in the old
query engine, so only top() is properly tested.
2016-02-10 09:40:25 -07:00
Ben Johnson 00806de9b8 refactor query engine 2016-02-10 09:40:25 -07:00
Ben Johnson 0ad9c31169 simple derivative 2016-02-10 09:40:24 -07:00
Ben Johnson 57336bd6ee fix conditionals 2016-02-10 09:40:24 -07:00
Ben Johnson 60b051ee88 LIMIT/OFFSET 2016-02-10 09:40:24 -07:00
Ben Johnson 036382ee20 SLIMIT/SOFFSET 2016-02-10 09:40:24 -07:00
Ben Johnson cde973f409 refactor query engine 2016-02-10 09:40:24 -07:00
Michael Mattioli e2a24c26fd Renamed InfluxQL markdown file
Renamed markdown file explaining InfluxQL
both for uniformity as well as for easy
access from github.com
2016-02-03 21:30:14 -05:00
David Norton 58e0eed9cb Merge pull request #5403 from influxdata/meta-service2
refactor meta into separate meta client & service
2016-01-22 20:06:51 -05:00
Jonathan A. Sternberg 1429f4b4ea Teach the CQ runner how to deal with a resample interval higher than the query interval
Previously if you issued a CQ with a resample interval higher than the
query interval, such as the following:

    CREATE CONTINUOUS QUERY cq ON db
        RESAMPLE EVERY 4m
        BEGIN
            SELECT mean(value) INTO cpu_mean FROM cpu GROUP BY time(2m)
        END

This would result in strange behavior because the FOR value defaulted to
the GROUP BY interval and the minimum time passing before a CQ ran was
also the resample interval, so it wouldn't run the appropriate intervals
even if you set the resample duration to a higher value.

This tweaks the CQ runner to set the minimum interval before a bucket
becomes capable of running to the lower of the query interval or the
resample interval instead of always using the resample interval.

It also sets the default resample duration to be the higher value of the
query interval or the resample interval so the above query gets a
default of 4m instead of 2m and will execute 2 queries every 4 minutes.

If you manually set the resample duration to a lower value than the
resample interval, the old behavior will still happen and should be
considered an error.

This also makes trying to create a continuous query with a resample
duration of below the resample interval or query interval (whichever is
higher) as an error returned by the parser.

Fixes #5286.
2016-01-22 09:43:46 -05:00
Paul Dix 88cf27e63b Remove debugging print lines. 2016-01-21 15:28:33 -05:00
Paul Dix f385945058 Update Server to work with new metaservice/client 2016-01-21 15:28:33 -05:00
Paul Dix c9d82ad0ad Wire up meta service functionality
* Add dir, hostname, and bind address to top level config since it applies to services other than meta
* Add enabled flags to example toml for data and meta services
* Wire up add/remove raft peers and meta servers to meta service
* Update DROP SERVER to be either DROP META SERVER or DROP DATA SERVER
* Bring over statement executor from old meta package
* Start meta service client implementation
* Update meta service test to use the client
* Wire up node ID/meta server storage information
2016-01-21 15:28:32 -05:00
Paulo Pires 17c2a344cd Fixed database creation with retention statement parsing. Fixes #5077 2016-01-07 22:08:19 +00:00
Mark Rushakoff 6022775c55 Merge pull request #5172 from influxdata/quoteident-alias
Add missing QuoteIdent
2016-01-06 17:00:34 -08:00
Jonathan A. Sternberg 5d4ecf853c Add continuous query option for customizing resampling
This makes the following syntax possible:

    CREATE CONTINUOUS QUERY mycq ON mydb
        RESAMPLE EVERY 1m FOR 1h
        BEGIN
          SELECT mean(value) INTO cpu_mean FROM cpu GROUP BY time(5m)
        END

The RESAMPLE option customizes how often an interval will be sampled and
the duration. The interval is customized with EVERY. Any intervals
within the resampling duration on a multiple of the resample interval
will be updated with the new results from the query.

The duration is customized with FOR. This determines how long an
interval will participate in resampling.

Both options are optional. If RESAMPLE is in the syntax, at least one of
the two needs to be given. The default for both is the interval of the
continuous query.

The service also improves tracking of the last run time and the logic of
when a query for an interval should be run. When determining the oldest
interval to run for a query, the continuous query service determines
what would have been the optimal time to perform the next query based on
the last run time. It then uses this time to determine the oldest
interval that should be run using the resample duration and will
resample all intervals between this time and the current time as opposed
to potentially forgetting about the last run in an interval if the
continuous query service gets delayed for some reason.

This removes the previous config options for customizing continuous
queries since they are no longer relevant and adds a new option of
customizing the run interval. The run interval determines how often the
continuous query service polls for when it should execute a query. This
option defaults to 1s, but can be set to 1m if the least common factor
of all continuous queries' intervals is a higher value (like 1m).
2015-12-28 16:43:49 -05:00
Paulo Pires be577e5a23 SHOW FIELD shouldn't expect VALUES. Fixes #5176 2015-12-20 09:52:09 +00:00
Mark Rushakoff 90f0a74349 Add missing QuoteIdent 2015-12-19 16:23:51 -08:00
Nathaniel Cook 804ddaa2df fix #4773 use explict derivative function names not just suffix 2015-12-15 09:21:25 -07:00
mengjingleli 3a901abbd8 fix issue #5054 2015-12-09 15:27:33 +08:00
Nathaniel Cook 7ffbbc1072 make fill previous for count() queries work 2015-12-07 12:51:40 -07:00
Philip O'Toole 317e6dde8c Fix string version of CREATE DATABASE ... WITH
Whitespace needed around keywords.
2015-12-06 09:35:31 -08:00
Nathaniel Cook 3227951069 Stub out DELETE in parser to return better error 2015-12-04 14:47:44 -07:00
Philip O'Toole 5c63ccaa6f Revert "Merge pull request #4988 from influxdb/revert-4984-fix-query-panic"
This reverts commit 44ff2f87db, reversing
changes made to 6fa016447f.
2015-12-04 11:05:02 -08:00
Mark Rushakoff d2f8a10f96 Merge pull request #4891 from influxdb/duration-must-have-units
InfluxQL: FormatDuration uses "u" for microsecond units
2015-12-04 08:05:21 -08:00
Philip O'Toole 3264b853cc Revert "fix raw math query panic" 2015-12-04 06:19:06 -08:00
Philip O'Toole 6fa016447f Merge pull request #4984 from mengjinglei/fix-query-panic
fix raw math query panic
2015-12-04 06:17:19 -08:00
Philip O'Toole c76b109ef4 Merge pull request #4858 from viru/fix-nested-aggr
Validate nested aggregations in queries
2015-12-04 05:58:29 -08:00
mengjingleli 2602dd241f fix raw math query panic 2015-12-04 15:17:31 +08:00
Mark Rushakoff da8c56049b FormatDuration uses "u" for microsecond units
Previously, it was formatting microsecond durations without any units.
Currently, all durations must have units explicitly specified.
2015-12-02 09:00:58 -08:00
Paulo Pires 30cc1339ec Renamed RetentionPolicyExists to RetentionPolicyCreate. 2015-11-28 16:15:00 +00:00
Paulo Pires 8e2868ed60 Added support for setting retention policy on database creation.
Fixes #2676
2015-11-27 20:02:55 +00:00
Mark Rushakoff ed393398cd Merge pull request #4868 from influxdb/influxql-doc-updates
Influxql doc updates
2015-11-24 12:16:12 -08:00
Mark Rushakoff 81beb43b69 Add more missing QuoteIdent calls 2015-11-23 14:51:57 -08:00
Mark Rushakoff c7782878aa Fix strings for SHOW MEASUREMENTS 2015-11-23 14:51:57 -08:00
Mark Rushakoff fc628fdb42 Fix strings for CREATE/DROP SUBSCRIPTION 2015-11-23 14:51:57 -08:00
Mark Rushakoff f4e19094ec Fix String() implementations of various Statements 2015-11-23 14:51:57 -08:00
Mark Rushakoff 74626d9511 Fix typo in parse error 2015-11-23 14:51:57 -08:00
Mark Rushakoff c24a849d9d SHOW SERIES does not accept group_by
[ci skip]
2015-11-22 13:40:35 -08:00
Mark Rushakoff 8ca1f5e0fb Add missing SHOW GRANTS; fix DELETE FROM
[ci skip]
2015-11-22 13:14:19 -08:00
Mark Rushakoff 03889cc991 Fix EBNF for drop series, show measurements
[ci skip]
2015-11-22 12:05:20 -08:00
Mark Rushakoff 73ef6ba858 More doc updates
[ci skip]
2015-11-22 10:21:45 -08:00
Mark Rushakoff b51dafbfaf Prefer on_clause over `"ON" db_name`
[ci skip]
2015-11-22 10:14:49 -08:00
Mark Rushakoff fb449b26c0 Miscellaneous InfluxQL documentation fixes 2015-11-21 17:13:53 -08:00
Paweł Kowalak c4d7261462 Validate nested aggregations in queries
For DERIVATIVE aggregations there was only one check performed: if
aggregation function is given when using group by. However the nested
aggregation function syntax was not checked.

Fixes #4123
2015-11-20 21:15:24 +01:00
Mateusz Dymiński 8090ba6830 SHOW SHARD GROUPS 2015-11-14 22:27:24 +01:00
ch33hau 2235dcec6b Added IF EXISTS for DROP DATABASE command, #4659 2015-11-07 10:57:49 +08:00
ch33hau aeb48501d1 Updated keyword list in INFLUXQL.md 2015-10-27 00:31:38 +08:00
David Norton a3d127f797 Revert "add RENAME DATABASE"
This reverts commit 7212bfce83.

Conflicts:
	influxql/parser.go
	influxql/token.go
	meta/internal/meta.pb.go
	meta/internal/meta.proto
2015-10-20 09:01:34 -04:00
David Norton 20929c3db2 Revert "change syntax to ALTER DATABASE ... RENAME TO ..."
This reverts commit 668b5b9bfb.
2015-10-20 08:43:45 -04:00
David Norton 34c9a053dd Revert "improvements from code review"
This reverts commit 37964a032f.

Conflicts:
	meta/internal/meta.proto
2015-10-20 08:41:50 -04:00
David Norton a1b0f53108 feat #3523: parse WITH in SHOW MEASUREMENTS 2015-10-19 14:00:53 -04:00
Nathaniel Cook cb1aaa8e42 Merge pull request #4375 from influxdb/subscriptions
Feature add subscriber service for creating/dropping subscriptions
2015-10-15 09:17:26 -06:00
Nathaniel Cook 8b31007aa7 Adds subscriber service for creating/dropping subscriptions to the
InfluxDB data stream.
2015-10-14 15:23:45 -06:00
Sean Beckett 8f79ce89aa Update INFLUXQL.md 2015-10-13 16:54:48 -07:00
Konstantin Shaposhnikov d887e798c3 Fix infinite recursion in DeleteStatement.String()
Fixes #4406
2015-10-12 21:38:50 +08:00
David Norton 512d6ac050 fix #4280: only drop points matching WHERE clause 2015-10-09 18:34:32 -04:00
linearb 37964a032f improvements from code review 2015-10-09 13:57:02 -04:00
linearb 668b5b9bfb change syntax to ALTER DATABASE ... RENAME TO ... 2015-10-09 13:56:23 -04:00
linearb 7212bfce83 add RENAME DATABASE 2015-10-09 13:55:38 -04:00
Nick Dawbarn 136dbef0e7 Formatting fixes 2015-10-08 19:41:36 +10:00
Nick Dawbarn 26f6d00668 Bugfix for #3429 String representations of RegexLiterals generated in influxql/ast.go add the / char as a start and end delimiter, but does not escape any / characters that may exist with the regex 2015-10-08 19:41:36 +10:00
Konstantin Shaposhnikov 95a0e149b0 Fix aggregates validation in presence of arithmetic expressions
Fixes #4325
2015-10-06 21:24:50 +08:00
David Norton 4375545064 fix #4276: walk DropSeriesStatement 2015-10-05 19:56:30 -04:00
Philip O'Toole 2ac0357406 Support dropping non-Raft nodes 2015-10-04 00:19:52 -07:00
Philip O'Toole d74e0690c7 Revert "Merge pull request #4233 from influxdb/drop-server"
This reverts commit 0bdb36f6dc, reversing
changes made to 3085fbc138.
2015-10-02 08:39:57 -07:00
Cory LaNou d036f63771 additional parser test for DROP SERVER 2015-10-01 15:39:15 -05:00
Cory LaNou dc317ce85f optional end requirments should also allow SEMICOLON 2015-10-01 15:39:15 -05:00
Cory LaNou 93507c0b51 add force for drop server, misc fixes, more wip 2015-10-01 15:39:15 -05:00
Cory LaNou 205c7674f6 add drop server tests 2015-10-01 15:39:14 -05:00
Cory LaNou 3c74c13908 add drop server statement 2015-10-01 15:39:14 -05:00
Jason Wilder 6dcd8d71a1 Merge pull request #4149 from peekeri/derivative_fix
influxql: when using derivative, check 'group by time' instead of 'where time ...'
2015-09-30 16:44:54 -06:00
Philip O'Toole 8177b80929 Update, and ease maintainabilty of SHOW errors
Fixes issue #4164.
2015-09-24 13:01:31 -07:00
Cory LaNou 82c50bb746 Merge pull request #4202 from influxdb/issue-1577-rb
Allow fields to be selected with "selector" aggregate functions
2015-09-23 16:33:20 -05:00
Cory LaNou ab84d3eb00 break early when detecting only selector statements 2015-09-23 15:27:43 -05:00
Cory LaNou 6b19e3dd9c minor refactorings 2015-09-23 09:47:24 -05:00
Cory LaNou 78bc740434 full support for min/max/first/last 2015-09-23 09:03:57 -05:00
Philip O'Toole 683cc0f226 Fix string representation of SHOW STATS 2015-09-22 21:57:20 -07:00
Philip O'Toole a71a5ffd36 Support module-selection for SHOW DIAGNOSTICS 2015-09-22 21:56:46 -07:00
Philip O'Toole 35d09cedfd Support SHOW STATS for specific module 2015-09-22 16:36:13 -07:00
Ben Johnson 8e27cf1fd8 Merge remote-tracking branch 'upstream/master' into refactor-select-mapper
Conflicts:
	tsdb/store.go
2015-09-22 13:58:24 -06:00
Ben Johnson b213ddad78 refactor cursor 2015-09-22 13:10:12 -06:00
Ben Johnson 1b8b625787 refactor SelectMapper 2015-09-22 13:09:26 -06:00
David Norton e4800df006 add more parser tests 2015-09-22 14:25:13 -04:00
David Norton e176d2c0dd make SHOW TAG KEYS support (S)LIMIT & (S)OFFSET 2015-09-21 13:05:53 -04:00
Jari Sukanen c844ec10d5 influxql: when using derivative, check 'group by time' instead of 'where time ...'
When using derivative, it is required that aggregate function is used as
sub-call when grouping by time is used. However, AST parsing used to check
if WHERE-clause contained condition with 'time'.

Fix this by changing check to see if groupByInterval is present.

Modify also related error case tests and add check for
select derivative(...) ... where time > ...
2015-09-18 08:55:09 +03:00
Cory LaNou ba830be3b9 actually move influxql.Row* -> models.Row* 2015-09-16 16:32:50 -05:00
Cory LaNou 5395ac7634 Period in field name that matches measurement fails. Fixes #3457 2015-09-15 16:26:39 -05:00
Cory LaNou 6ffd38f02b Merge pull request #4084 from influxdb/issue-3718
Derivative query with group by time but no aggregate function validation
2015-09-11 14:25:14 -05:00
Cory LaNou 91d833efeb Derivative query with group by time but no aggregate function should fail parse. Fixes #3718 2015-09-11 14:16:29 -05:00
Daniel Morsing 66fc270d1e Move aggregate funcs into tsdb
Pure move, No functional changes.
2015-09-11 14:27:47 +00:00
Cory LaNou 7f2ba8155a removing unecessary continues 2015-09-10 13:10:21 -05:00
Cory LaNou 05f69b3d6c Validate Dimension for proper time scenarios. Fixes #3902 2015-09-10 13:10:21 -05:00
Cory LaNou 59ef75a183 Allow wildcards without abandon! Fixes #3978 2015-09-09 15:27:15 -05:00
Cory LaNou a09e2c27bb minor tweaks based on PR review 2015-09-04 13:41:46 -05:00
Cory LaNou fa4415b3a4 refactor processing top/bottom results. clarify some comments 2015-09-04 13:30:43 -05:00
Cory LaNou bdc54cf5d2 helpers -> pkg + readme 2015-09-04 13:30:43 -05:00
Cory LaNou 6a3bedc0e1 add additional parser test for top function with tags 2015-09-04 13:30:42 -05:00
Cory LaNou 9ab3d89c06 bucketTime* -> tMin* 2015-09-04 13:30:42 -05:00
Cory LaNou 4a9e936858 minor comment fix 2015-09-04 13:30:42 -05:00
Cory LaNou 3ca93594c3 BucketTime -> TMin 2015-09-04 13:30:42 -05:00
Cory LaNou b71833ab46 refactor allowMixedAggregates, comment cleanup 2015-09-04 13:30:42 -05:00
Cory LaNou 88ce04a4b9 move comment to proper line 2015-09-04 13:30:42 -05:00
Cory LaNou 9703467171 refactor validateAggregates 2015-09-04 13:30:41 -05:00
Cory LaNou 3db5a85139 all tests passing for top 2015-09-04 13:30:41 -05:00
Cory LaNou 347ffc70b4 wire up advanced top sorting/slicing 2015-09-04 13:30:41 -05:00
Cory LaNou 8c4595b345 top is coming together. filling out fields properly 2015-09-04 13:30:41 -05:00
Cory LaNou ba79007960 wip 2015-09-04 13:30:41 -05:00
Cory LaNou 6f7eca9778 correcting sort behavior for top 2015-09-04 13:30:40 -05:00
Cory LaNou 046282249a wip remapping top output 2015-09-04 13:30:40 -05:00
Cory LaNou d060f3aba9 move all aggregate validations to the parser validation from map/reduce functions 2015-09-04 13:30:40 -05:00
Cory LaNou c5358dcd2a always sort results for ReduceTop. Skip test until we verify expected behavior 2015-09-04 13:30:40 -05:00
Cory LaNou b45872c1ac first pass at ReduceTop 2015-09-04 13:30:40 -05:00
Cory LaNou 6b005af731 change ReducePercentile signature 2015-09-04 13:30:40 -05:00
Cory LaNou e6de6d0887 change percentile to check errors in parsing, not in mapping 2015-09-04 13:30:40 -05:00
Cory LaNou f8d486f99c maptop bool test 2015-09-04 13:30:40 -05:00
Cory LaNou 52cb46fc56 mixed maptop test with strings 2015-09-04 13:30:40 -05:00
Cory LaNou dd278a10f6 add test for mixed numerics and fix infer 2015-09-04 13:30:39 -05:00
Cory LaNou 193fd501db first pass at MapTop. more testing to come 2015-09-04 13:30:39 -05:00
Cory LaNou 72fd115dc2 exposing tags on cursors, top/bottom are valid funcs now 2015-09-04 13:30:39 -05:00
Jason Wilder d466533f20 Return a parse error for order by anything other than time
Order by time asc and desc are the only supported order by options
currently.  Tags, fields, or multiple order by fields will return
a parse error.
2015-09-03 22:31:58 -06:00
Jason Wilder 04a20566c1 Allow order by desc in parser 2015-09-03 22:28:35 -06:00
Ben Johnson bbc5539517 add SHOW SHARDS statement
This commit adds the ability to list all shards in the cluster
and return their id, start time, end time, expiry time, and
owner ids. Shards are grouped by database.

Fixes #3562
2015-09-03 15:46:52 -06:00
David Norton 6e6b5c4e70 remove debugging statements 2015-09-03 07:12:15 -04:00
David Norton dc968eae59 fix #255: revert Measurement parent 2015-09-03 07:12:15 -04:00
David Norton 816c5f5368 fix #2555: don't normalize target names 2015-09-03 07:12:15 -04:00
David Norton 99a22c174b fix #2555: add backreference in CQs
Add new query syntax to allow the following in CQs:

INTO "1hPolicy".:MEASUREMENT
2015-09-03 07:12:15 -04:00
Daniel Morsing c4092d7fc3 Revert "move aggregate functions" 2015-09-02 10:47:58 -07:00
Daniel Morsing 65340a023b Move aggregate funcs into tsdb
Pure move, No functional changes.
2015-09-01 14:25:59 -07:00
Paul Dix 040fa060df Add more detailed logging for compactions 2015-09-01 09:52:20 -04:00
Daniel Morsing 841e6fc6b5 Merge pull request #3908 from influxdb/firstopt
only look at the first value for first()
2015-08-31 14:21:29 -07:00
Daniel Morsing 8ca8293d11 only look at the first values for first()
Since we set up the aggregate queries so that iterator is ordered,
we only need to look at the first value. This cuts about 10 seconds
off a large single series query running first.
2015-08-31 13:43:28 -07:00
Philip O'Toole 78170bd798 Parse multiple tokens at once (NOT EXISTS) 2015-08-29 09:56:15 -07:00
Philip O'Toole 5ae004d062 Update INFLUXQL keywords
[ci skip]
2015-08-29 09:56:15 -07:00
Philip O'Toole 1228c985ea Parser support for CREATE DATABASE IF NOT EXISTS 2015-08-28 19:04:50 -07:00
David Norton 3c45838c10 update INFLUXQL.md 2015-08-27 08:38:16 -04:00
Philip 45cc51edfe During first() and last(), break any tie by value
If 2 or more points during this map-and-reduce share the same timestamp,
the tie is broken by looking at the value. This ensures that these
functions operate in a deterministic manner.

This solution due to @jwilder
2015-08-25 22:26:03 -07:00