influxdb 0.3.5 → 0.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c027fe626b731c0fe89678ae44f7f87a24db7c68
4
+ data.tar.gz: 929dc5eda07eabfba284891ede0a293a6b0fc49a
5
+ SHA512:
6
+ metadata.gz: 64db490708b15350c4e2ab2cc76b5f934db510a86eec7be024f9a6c652e26d09fa2570b729ab6987887382769b5b9a1f5bbfdb0a3c8fc96775ce2db7b0a563fb
7
+ data.tar.gz: b4fc2890772ec74612dac94633e5607904b4aadeef0a3760d698b24cbf16d4a23e6c004edece2b15d8926fa21e028f7479a26d168a03ab59ae4cbaedccc782f5
@@ -2,6 +2,7 @@ sudo: required
2
2
  dist: trusty
3
3
  language: ruby
4
4
  before_install:
5
+ - gem install bundler
5
6
  - gem update bundler
6
7
  rvm:
7
8
  - 1.9.3
@@ -21,12 +22,13 @@ matrix:
21
22
  - rvm: 2.3.1
22
23
  env: TEST_TASK=rubocop
23
24
  - rvm: jruby-9.0.5.0
24
- env: JRUBY_OPTS='-J-Xmx256M'
25
+ env: JRUBY_OPTS='--client -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -J-Xss2m -J-Xmx256M'
25
26
  - rvm: jruby-head
26
- env: JRUBY_OPTS='-J-Xmx256M'
27
+ env: JRUBY_OPTS='--client -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -J-Xss2m -J-Xmx256M'
27
28
  fail_fast: true
28
29
  addons:
29
30
  apt:
30
31
  packages:
32
+ - haveged
31
33
  - libgmp-dev
32
34
  script: bundle exec rake $TEST_TASK
@@ -6,6 +6,11 @@ For the full commit log, [see here](https://github.com/influxdata/influxdb-ruby/
6
6
 
7
7
  - None.
8
8
 
9
+ ## v0.3.6, released 2016-07-24
10
+
11
+ - Added feature for JSON streaming response, via `"chunk_size"` parameter
12
+ (#155, @mhodson-qxbranch)
13
+
9
14
  ## v0.3.5, released 2016-06-09
10
15
 
11
16
  - Reintroduced full dependency on "cause" (for Ruby 1.9 compat).
data/Gemfile CHANGED
@@ -1,5 +1,9 @@
1
1
  source "https://rubygems.org"
2
2
 
3
+ if RUBY_ENGINE != "jruby" && RUBY_VERSION < "2.0"
4
+ gem "json", "~> 1.8.3"
5
+ end
6
+
3
7
  gemspec
4
8
 
5
9
  local_gemfile = 'Gemfile.local'
data/README.md CHANGED
@@ -18,6 +18,9 @@ Maintained by [@toddboom](https://github.com/toddboom) and [@dmke](https://githu
18
18
 
19
19
  This gem should work with Ruby 1.9+, but starting with v0.4, we'll likely drop Ruby 1.9 support.
20
20
 
21
+ Please note that for Ruby 1.9, you'll need to install the JSON gem in version 1.8.x yourself,
22
+ for example by pinning the version in your `Gemfile` (i.e. `gem "json", "~> 1.8.3"`).
23
+
21
24
  ## Install
22
25
 
23
26
  ```
@@ -424,7 +427,7 @@ influxdb.write_point(name, data)
424
427
 
425
428
  ### Reading data
426
429
 
427
- Querying:
430
+ ### Querying
428
431
 
429
432
  ``` ruby
430
433
  username = 'foo'
@@ -468,6 +471,8 @@ influxdb.query 'select * from time_series', epoch: 'ms'
468
471
  # [{"name"=>"time_series", "tags"=>{"region"=>"uk"}, "values"=>[{"time"=>1438411376000, "count"=>32, "value"=>0.9673}]}]
469
472
  ```
470
473
 
474
+ #### (De-) Normalization
475
+
471
476
  By default, InfluxDB::Client will denormalize points (received from InfluxDB as columns and rows), if you want to get _raw_ data add `denormalize: false` to initialization options or to query itself:
472
477
 
473
478
  ``` ruby
@@ -487,6 +492,22 @@ end
487
492
  # time_series_1 [ {"region"=>"us"} ] => {"columns"=>["time", "count", "value"], "values"=>[["2015-07-09T09:02:54Z", 55, 0.4343]]}
488
493
  ```
489
494
 
495
+ #### Streaming response
496
+
497
+ If you expect large quantities of data in a response, you may want to enable JSON streaming by setting a `chunk_size`:
498
+
499
+ ``` ruby
500
+ influxdb = InfluxDB::Client.new database,
501
+ username: username,
502
+ password: password,
503
+ chunk_size: 10000
504
+ ```
505
+
506
+ See the [official documentation](http://docs.influxdata.com/influxdb/v0.13/guides/querying_data/#chunking) for more details.
507
+
508
+
509
+ #### Retry
510
+
490
511
  By default, InfluxDB::Client will keep trying to connect to the database when it gets connection denied,
491
512
  if you want to retry a finite number of times (or disable retries altogether), you should pass the `:retry`
492
513
  value.
@@ -4,6 +4,7 @@ require 'net/http'
4
4
  require 'net/https'
5
5
 
6
6
  module InfluxDB
7
+ # rubocop:disable Metrics/ModuleLength
7
8
  # rubocop:disable Metrics/MethodLength
8
9
  # rubocop:disable Metrics/AbcSize
9
10
  module HTTP # :nodoc:
@@ -85,7 +86,14 @@ module InfluxDB
85
86
  end
86
87
 
87
88
  def handle_successful_response(response, options)
88
- parsed_response = JSON.parse(response.body) if response.body
89
+ if options.fetch(:json_streaming, false)
90
+ parsed_response = response.body.each_line.with_object({}) do |line, parsed|
91
+ parsed.merge!(JSON.parse(line)) { |_key, oldval, newval| oldval + newval }
92
+ end
93
+ elsif response.body
94
+ parsed_response = JSON.parse(response.body)
95
+ end
96
+
89
97
  errors = errors_from_response(parsed_response)
90
98
 
91
99
  raise InfluxDB::QueryError, errors if errors
@@ -20,6 +20,7 @@ module InfluxDB
20
20
  :read_timeout,
21
21
  :retry,
22
22
  :prefix,
23
+ :chunk_size,
23
24
  :denormalize,
24
25
  :epoch
25
26
 
@@ -30,6 +31,7 @@ module InfluxDB
30
31
  extract_ssl_options!(opts)
31
32
  extract_database_options!(opts)
32
33
  extract_writer_options!(opts)
34
+ extract_query_options!(opts)
33
35
 
34
36
  configure_retry! opts.fetch(:retry, nil)
35
37
  configure_hosts! opts[:hosts] || opts[:host] || "localhost".freeze
@@ -110,5 +112,9 @@ module InfluxDB
110
112
  @async = opts.fetch :async, false
111
113
  @udp = opts.fetch :udp, false
112
114
  end
115
+
116
+ def extract_query_options!(opts)
117
+ @chunk_size = opts.fetch :chunk_size, nil
118
+ end
113
119
  end
114
120
  end
@@ -14,9 +14,11 @@ module InfluxDB
14
14
  # rubocop:disable Metrics/MethodLength
15
15
  def query(query, opts = {})
16
16
  denormalize = opts.fetch(:denormalize, config.denormalize)
17
+ json_streaming = !opts.fetch(:chunk_size, config.chunk_size).nil?
18
+
17
19
  params = query_params(query, opts)
18
20
  url = full_url("/query".freeze, params)
19
- series = fetch_series(get(url, parse: true))
21
+ series = fetch_series(get(url, parse: true, json_streaming: json_streaming))
20
22
 
21
23
  if block_given?
22
24
  series.each do |s|
@@ -67,9 +69,16 @@ module InfluxDB
67
69
  def query_params(query, opts)
68
70
  precision = opts.fetch(:precision, config.time_precision)
69
71
  epoch = opts.fetch(:epoch, config.epoch)
72
+ chunk_size = opts.fetch(:chunk_size, config.chunk_size)
70
73
 
71
74
  params = { q: query, db: config.database, precision: precision }
72
75
  params[:epoch] = epoch if epoch
76
+
77
+ if chunk_size
78
+ params[:chunked] = 'true'
79
+ params[:chunk_size] = chunk_size
80
+ end
81
+
73
82
  params
74
83
  end
75
84
 
@@ -1,3 +1,3 @@
1
1
  module InfluxDB # :nodoc:
2
- VERSION = "0.3.5".freeze
2
+ VERSION = "0.3.6".freeze
3
3
  end
@@ -0,0 +1,89 @@
1
+ # This test spec addresses closed issue https://github.com/influxdata/influxdb/issues/7000 where
2
+ # it was confirmed that when chunking is enabled, the InfluxDB REST API returns multi-line JSON.
3
+
4
+ require "spec_helper"
5
+ require "json"
6
+
7
+ describe InfluxDB::Client do
8
+ let(:subject) do
9
+ described_class.new "database", {
10
+ host: "influxdb.test",
11
+ port: 9999,
12
+ username: "username",
13
+ password: "password",
14
+ time_precision: "s"
15
+ }.merge(args)
16
+ end
17
+
18
+ let(:args) { {} }
19
+ let(:database) { subject.config.database }
20
+ let(:extra_params) { {} }
21
+ let(:response) { "" }
22
+
23
+ before do
24
+ stub_request(:get, "http://influxdb.test:9999/query")
25
+ .with(query: { q: query, u: "username", p: "password", precision: 's', db: database }.merge(extra_params))
26
+ .to_return(body: response)
27
+ end
28
+
29
+ describe "#query" do
30
+ context "with series with different tags (multi-line)" do
31
+ let(:args) { { chunk_size: 100 } }
32
+ let(:extra_params) { { chunked: "true", chunk_size: "100" } }
33
+
34
+ let(:response_line_1) do
35
+ { "results" => [{ "series" => [{ "name" => "cpu", "tags" => { "region" => "pl" }, "columns" => %w(time temp value), "values" => [["2015-07-07T15:13:04Z", 34, 0.343443]] }] }] }
36
+ end
37
+ let(:response_line_2) do
38
+ { "results" => [{ "series" => [{ "name" => "cpu", "tags" => { "region" => "us" }, "columns" => %w(time temp value), "values" => [["2015-07-07T14:58:37Z", 92, 0.3445], ["2015-07-07T14:59:09Z", 68, 0.8787]] }] }] }
39
+ end
40
+ let(:response) do
41
+ JSON.generate(response_line_1) + "\n" + JSON.generate(response_line_2)
42
+ end
43
+ let(:expected_result) do
44
+ [{ "name" => "cpu", "tags" => { "region" => "pl" },
45
+ "values" => [{ "time" => "2015-07-07T15:13:04Z", "temp" => 34, "value" => 0.343443 }] },
46
+ { "name" => "cpu", "tags" => { "region" => "us" },
47
+ "values" => [{ "time" => "2015-07-07T14:58:37Z", "temp" => 92, "value" => 0.3445 },
48
+ { "time" => "2015-07-07T14:59:09Z", "temp" => 68, "value" => 0.8787 }] }]
49
+ end
50
+ let(:query) { 'SELECT * FROM cpu' }
51
+
52
+ it "should return array with 2 elements grouped by tags" do
53
+ expect(subject.query(query)).to eq(expected_result)
54
+ end
55
+ end
56
+
57
+ context "with multiple series with different tags" do
58
+ let(:args) { { chunk_size: 100 } }
59
+ let(:extra_params) { { chunked: "true", chunk_size: "100" } }
60
+
61
+ let(:response_line_1) do
62
+ { "results" => [{ "series" => [{ "name" => "access_times.service_1", "tags" => { "code" => "200", "result" => "failure", "status" => "OK" }, "columns" => %w(time value), "values" => [["2015-07-08T07:15:22Z", 327]] }] }] }
63
+ end
64
+ let(:response_line_2) do
65
+ { "results" => [{ "series" => [{ "name" => "access_times.service_1", "tags" => { "code" => "500", "result" => "failure", "status" => "Internal Server Error" }, "columns" => %w(time value), "values" => [["2015-07-08T06:15:22Z", 873]] }] }] }
66
+ end
67
+ let(:response_line_3) do
68
+ { "results" => [{ "series" => [{ "name" => "access_times.service_2", "tags" => { "code" => "200", "result" => "failure", "status" => "OK" }, "columns" => %w(time value), "values" => [["2015-07-08T07:15:22Z", 943]] }] }] }
69
+ end
70
+ let(:response_line_4) do
71
+ { "results" => [{ "series" => [{ "name" => "access_times.service_2", "tags" => { "code" => "500", "result" => "failure", "status" => "Internal Server Error" }, "columns" => %w(time value), "values" => [["2015-07-08T06:15:22Z", 606]] }] }] }
72
+ end
73
+ let(:response) do
74
+ JSON.generate(response_line_1) + "\n" + JSON.generate(response_line_2) + "\n" + JSON.generate(response_line_3) + "\n" + JSON.generate(response_line_4)
75
+ end
76
+ let(:expected_result) do
77
+ [{ "name" => "access_times.service_1", "tags" => { "code" => "200", "result" => "failure", "status" => "OK" }, "values" => [{ "time" => "2015-07-08T07:15:22Z", "value" => 327 }] },
78
+ { "name" => "access_times.service_1", "tags" => { "code" => "500", "result" => "failure", "status" => "Internal Server Error" }, "values" => [{ "time" => "2015-07-08T06:15:22Z", "value" => 873 }] },
79
+ { "name" => "access_times.service_2", "tags" => { "code" => "200", "result" => "failure", "status" => "OK" }, "values" => [{ "time" => "2015-07-08T07:15:22Z", "value" => 943 }] },
80
+ { "name" => "access_times.service_2", "tags" => { "code" => "500", "result" => "failure", "status" => "Internal Server Error" }, "values" => [{ "time" => "2015-07-08T06:15:22Z", "value" => 606 }] }]
81
+ end
82
+ let(:query) { "SELECT * FROM /access_times.*/" }
83
+
84
+ it "should return array with 4 elements grouped by name and tags" do
85
+ expect(subject.query(query)).to eq(expected_result)
86
+ end
87
+ end
88
+ end
89
+ end
@@ -134,8 +134,7 @@ describe InfluxDB::Client do
134
134
  "values" => [{ "time" => 1_438_580_576, "temp" => 34, "value" => 0.343443 }] },
135
135
  { "name" => "cpu", "tags" => { "region" => "us" },
136
136
  "values" => [{ "time" => 1_438_612_976, "temp" => 92, "value" => 0.3445 },
137
- { "time" => 1_438_612_989, "temp" => 68, "value" => 0.8787 }]
138
- }]
137
+ { "time" => 1_438_612_989, "temp" => 68, "value" => 0.8787 }] }]
139
138
  end
140
139
  let(:query) { 'SELECT * FROM cpu' }
141
140
 
@@ -143,6 +142,23 @@ describe InfluxDB::Client do
143
142
  expect(subject.query(query)).to eq(expected_result)
144
143
  end
145
144
  end
145
+
146
+ context "with chunk_size set to 100" do
147
+ let(:args) { { chunk_size: 100 } }
148
+ let(:extra_params) { { chunked: "true", chunk_size: "100" } }
149
+
150
+ let(:response) do
151
+ { "results" => [{ "series" => [{ "name" => "cpu", "tags" => { "region" => "pl" }, "columns" => %w(time temp value), "values" => [[1_438_580_576, 34, 0.343443]] }] }] }
152
+ end
153
+ let(:expected_result) do
154
+ [{ "name" => "cpu", "tags" => { "region" => "pl" }, "values" => [{ "time" => 1_438_580_576, "temp" => 34, "value" => 0.343443 }] }]
155
+ end
156
+ let(:query) { 'SELECT * FROM cpu' }
157
+
158
+ it "should set 'chunked' and 'chunk_size' parameters" do
159
+ expect(subject.query(query)).to eq(expected_result)
160
+ end
161
+ end
146
162
  end
147
163
 
148
164
  describe "multiple select queries" do
metadata CHANGED
@@ -1,126 +1,111 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: influxdb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.5
5
- prerelease:
4
+ version: 0.3.6
6
5
  platform: ruby
7
6
  authors:
8
7
  - Todd Persen
9
- autorequire:
8
+ autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2016-06-09 00:00:00.000000000 Z
11
+ date: 2016-07-24 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
- name: json
16
14
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
15
  requirements:
19
- - - ! '>='
16
+ - - ">="
20
17
  - !ruby/object:Gem::Version
21
18
  version: '0'
22
- type: :runtime
19
+ name: json
23
20
  prerelease: false
21
+ type: :runtime
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - ">="
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
- name: cause
32
28
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
29
  requirements:
35
- - - ! '>='
30
+ - - ">="
36
31
  - !ruby/object:Gem::Version
37
32
  version: '0'
38
- type: :runtime
33
+ name: cause
39
34
  prerelease: false
35
+ type: :runtime
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
- name: rake
48
42
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
43
  requirements:
51
- - - ! '>='
44
+ - - ">="
52
45
  - !ruby/object:Gem::Version
53
46
  version: '0'
54
- type: :development
47
+ name: rake
55
48
  prerelease: false
49
+ type: :development
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - ">="
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
- name: bundler
64
56
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
57
  requirements:
67
- - - ~>
58
+ - - "~>"
68
59
  - !ruby/object:Gem::Version
69
60
  version: '1.3'
70
- type: :development
61
+ name: bundler
71
62
  prerelease: false
63
+ type: :development
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ~>
66
+ - - "~>"
76
67
  - !ruby/object:Gem::Version
77
68
  version: '1.3'
78
69
  - !ruby/object:Gem::Dependency
79
- name: rspec
80
70
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
71
  requirements:
83
- - - ~>
72
+ - - "~>"
84
73
  - !ruby/object:Gem::Version
85
74
  version: 3.4.0
86
- type: :development
75
+ name: rspec
87
76
  prerelease: false
77
+ type: :development
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ~>
80
+ - - "~>"
92
81
  - !ruby/object:Gem::Version
93
82
  version: 3.4.0
94
83
  - !ruby/object:Gem::Dependency
95
- name: webmock
96
84
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
85
  requirements:
99
- - - ~>
86
+ - - "~>"
100
87
  - !ruby/object:Gem::Version
101
88
  version: 1.24.2
102
- type: :development
89
+ name: webmock
103
90
  prerelease: false
91
+ type: :development
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ~>
94
+ - - "~>"
108
95
  - !ruby/object:Gem::Version
109
96
  version: 1.24.2
110
97
  - !ruby/object:Gem::Dependency
111
- name: rubocop
112
98
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
99
  requirements:
115
- - - ~>
100
+ - - "~>"
116
101
  - !ruby/object:Gem::Version
117
102
  version: 0.39.0
118
- type: :development
103
+ name: rubocop
119
104
  prerelease: false
105
+ type: :development
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
- - - ~>
108
+ - - "~>"
124
109
  - !ruby/object:Gem::Version
125
110
  version: 0.39.0
126
111
  description: This is the official Ruby library for InfluxDB.
@@ -130,9 +115,9 @@ executables: []
130
115
  extensions: []
131
116
  extra_rdoc_files: []
132
117
  files:
133
- - .gitignore
134
- - .rubocop.yml
135
- - .travis.yml
118
+ - ".gitignore"
119
+ - ".rubocop.yml"
120
+ - ".travis.yml"
136
121
  - CHANGELOG.md
137
122
  - Gemfile
138
123
  - LICENSE.txt
@@ -159,13 +144,14 @@ files:
159
144
  - spec/influxdb/cases/async_client_spec.rb
160
145
  - spec/influxdb/cases/query_cluster_spec.rb
161
146
  - spec/influxdb/cases/query_continuous_query_spec.rb
162
- - spec/influxdb/cases/query_core.rb
147
+ - spec/influxdb/cases/query_core_spec.rb
163
148
  - spec/influxdb/cases/query_database_spec.rb
164
149
  - spec/influxdb/cases/query_retention_policy_spec.rb
165
150
  - spec/influxdb/cases/query_series_spec.rb
166
151
  - spec/influxdb/cases/query_shard_space_spec.rb
167
152
  - spec/influxdb/cases/query_shard_spec.rb
168
153
  - spec/influxdb/cases/query_user_spec.rb
154
+ - spec/influxdb/cases/querying_issue_7000_spec.rb
169
155
  - spec/influxdb/cases/querying_spec.rb
170
156
  - spec/influxdb/cases/retry_requests_spec.rb
171
157
  - spec/influxdb/cases/udp_client_spec.rb
@@ -180,45 +166,39 @@ files:
180
166
  homepage: http://influxdb.org
181
167
  licenses:
182
168
  - MIT
183
- post_install_message:
169
+ metadata: {}
170
+ post_install_message:
184
171
  rdoc_options: []
185
172
  require_paths:
186
173
  - lib
187
174
  required_ruby_version: !ruby/object:Gem::Requirement
188
- none: false
189
175
  requirements:
190
- - - ! '>='
176
+ - - ">="
191
177
  - !ruby/object:Gem::Version
192
178
  version: '0'
193
- segments:
194
- - 0
195
- hash: -2716499157754774119
196
179
  required_rubygems_version: !ruby/object:Gem::Requirement
197
- none: false
198
180
  requirements:
199
- - - ! '>='
181
+ - - ">="
200
182
  - !ruby/object:Gem::Version
201
183
  version: '0'
202
- segments:
203
- - 0
204
- hash: -2716499157754774119
205
184
  requirements: []
206
- rubyforge_project:
207
- rubygems_version: 1.8.25
208
- signing_key:
209
- specification_version: 3
185
+ rubyforge_project:
186
+ rubygems_version: 2.4.8
187
+ signing_key:
188
+ specification_version: 4
210
189
  summary: Ruby library for InfluxDB.
211
190
  test_files:
212
191
  - spec/influxdb/cases/async_client_spec.rb
213
192
  - spec/influxdb/cases/query_cluster_spec.rb
214
193
  - spec/influxdb/cases/query_continuous_query_spec.rb
215
- - spec/influxdb/cases/query_core.rb
194
+ - spec/influxdb/cases/query_core_spec.rb
216
195
  - spec/influxdb/cases/query_database_spec.rb
217
196
  - spec/influxdb/cases/query_retention_policy_spec.rb
218
197
  - spec/influxdb/cases/query_series_spec.rb
219
198
  - spec/influxdb/cases/query_shard_space_spec.rb
220
199
  - spec/influxdb/cases/query_shard_spec.rb
221
200
  - spec/influxdb/cases/query_user_spec.rb
201
+ - spec/influxdb/cases/querying_issue_7000_spec.rb
222
202
  - spec/influxdb/cases/querying_spec.rb
223
203
  - spec/influxdb/cases/retry_requests_spec.rb
224
204
  - spec/influxdb/cases/udp_client_spec.rb