riak-client 2.4.1 → 2.5.0

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.
Files changed (106) hide show
  1. checksums.yaml +4 -4
  2. data/.document +5 -5
  3. data/.gitignore +3 -0
  4. data/Gemfile +17 -17
  5. data/Guardfile +20 -20
  6. data/LICENSE.md +16 -16
  7. data/RELNOTES.md +4 -0
  8. data/Rakefile +6 -1
  9. data/lib/riak/client/beefcake/crdt/counter_loader.rb +18 -18
  10. data/lib/riak/client/beefcake/crdt/hyper_log_log_loader.rb +18 -0
  11. data/lib/riak/client/beefcake/crdt/map_loader.rb +64 -64
  12. data/lib/riak/client/beefcake/crdt_loader.rb +4 -1
  13. data/lib/riak/client/beefcake/crdt_operator.rb +13 -0
  14. data/lib/riak/client/beefcake/footer +4 -4
  15. data/lib/riak/client/beefcake/header +6 -6
  16. data/lib/riak/client/beefcake/messages.rb +67 -10
  17. data/lib/riak/client/decaying.rb +36 -36
  18. data/lib/riak/client/feature_detection.rb +120 -120
  19. data/lib/riak/client/instrumentation.rb +19 -19
  20. data/lib/riak/client/node.rb +49 -49
  21. data/lib/riak/client/search.rb +27 -27
  22. data/lib/riak/conflict.rb +13 -13
  23. data/lib/riak/core_ext.rb +7 -7
  24. data/lib/riak/core_ext/blank.rb +53 -53
  25. data/lib/riak/core_ext/extract_options.rb +7 -7
  26. data/lib/riak/core_ext/json.rb +15 -15
  27. data/lib/riak/core_ext/slice.rb +18 -18
  28. data/lib/riak/core_ext/stringify_keys.rb +10 -10
  29. data/lib/riak/core_ext/symbolize_keys.rb +10 -10
  30. data/lib/riak/core_ext/to_param.rb +31 -31
  31. data/lib/riak/crdt.rb +23 -21
  32. data/lib/riak/crdt/base.rb +1 -1
  33. data/lib/riak/crdt/hyper_log_log.rb +97 -0
  34. data/lib/riak/crdt/operation.rb +19 -19
  35. data/lib/riak/encoding.rb +6 -6
  36. data/lib/riak/errors/backend_creation.rb +9 -9
  37. data/lib/riak/errors/connection_error.rb +50 -50
  38. data/lib/riak/errors/protobuffs_error.rb +11 -11
  39. data/lib/riak/i18n.rb +7 -7
  40. data/lib/riak/instrumentation.rb +6 -6
  41. data/lib/riak/json.rb +52 -52
  42. data/lib/riak/list_buckets.rb +28 -28
  43. data/lib/riak/locale/en.yml +1 -0
  44. data/lib/riak/locale/fr.yml +51 -51
  45. data/lib/riak/map_reduce/results.rb +49 -49
  46. data/lib/riak/map_reduce_error.rb +7 -7
  47. data/lib/riak/multiget.rb +122 -122
  48. data/lib/riak/robject.rb +17 -1
  49. data/lib/riak/search/result_document.rb +9 -0
  50. data/lib/riak/stamp.rb +77 -77
  51. data/lib/riak/tombstone.rb +13 -0
  52. data/lib/riak/util/tcp_socket_extensions.rb +58 -58
  53. data/lib/riak/version.rb +1 -1
  54. data/spec/failover/failover.rb +59 -59
  55. data/spec/fixtures/bitcask.txt +25 -25
  56. data/spec/fixtures/multipart-basic-conflict.txt +15 -15
  57. data/spec/fixtures/multipart-blank.txt +7 -7
  58. data/spec/fixtures/multipart-mapreduce.txt +10 -10
  59. data/spec/fixtures/multipart-with-body.txt +16 -16
  60. data/spec/fixtures/multipart-with-marked-tombstones.txt +17 -17
  61. data/spec/fixtures/multipart-with-unmarked-tombstone.txt +16 -16
  62. data/spec/fixtures/server.cert.crt +15 -15
  63. data/spec/fixtures/server.cert.key +15 -15
  64. data/spec/fixtures/test.pem +1 -1
  65. data/spec/integration/riak/bucket_types_spec.rb +38 -0
  66. data/spec/integration/riak/crdt/configuration_spec.rb +4 -3
  67. data/spec/integration/riak/crdt_spec.rb +70 -0
  68. data/spec/integration/riak/encodings/crdt_spec.rb +29 -3
  69. data/spec/integration/riak/encodings/yz_spec.rb +2 -1
  70. data/spec/integration/riak/preflist_spec.rb +15 -3
  71. data/spec/integration/riak/protobuffs/timeouts_spec.rb +1 -1
  72. data/spec/integration/riak/security_spec.rb +11 -6
  73. data/spec/integration/riak/threading_spec.rb +154 -150
  74. data/spec/integration/yokozuna/index_spec.rb +61 -61
  75. data/spec/integration/yokozuna/queries_spec.rb +1 -1
  76. data/spec/integration/yokozuna/schema_spec.rb +49 -49
  77. data/spec/riak/beefcake_protobuffs_backend/crdt_operator_spec.rb +22 -0
  78. data/spec/riak/core_ext/to_param_spec.rb +15 -15
  79. data/spec/riak/crdt/hyper_log_log_spec.rb +56 -0
  80. data/spec/riak/crdt/inner_counter_spec.rb +21 -21
  81. data/spec/riak/crdt/inner_set_spec.rb +33 -33
  82. data/spec/riak/crdt/set_spec.rb +61 -61
  83. data/spec/riak/crdt/shared_examples.rb +14 -0
  84. data/spec/riak/escape_spec.rb +72 -72
  85. data/spec/riak/feature_detection_spec.rb +77 -77
  86. data/spec/riak/index_collection_spec.rb +53 -53
  87. data/spec/riak/instrumentation_spec.rb +124 -124
  88. data/spec/riak/link_spec.rb +85 -85
  89. data/spec/riak/list_buckets_spec.rb +41 -41
  90. data/spec/riak/node_spec.rb +26 -26
  91. data/spec/riak/robject_spec.rb +45 -0
  92. data/spec/support/certs/README.md +12 -12
  93. data/spec/support/certs/ca.crt +21 -21
  94. data/spec/support/certs/client.crl +13 -13
  95. data/spec/support/certs/client.crt +94 -94
  96. data/spec/support/certs/client.csr +18 -18
  97. data/spec/support/certs/client.key +27 -27
  98. data/spec/support/certs/empty_ca.crt +21 -21
  99. data/spec/support/certs/server.crl +13 -13
  100. data/spec/support/certs/server.crt +94 -94
  101. data/spec/support/certs/server.key +27 -27
  102. data/spec/support/crdt_search_fixtures.rb +1 -1
  103. data/spec/support/integration_setup.rb +10 -10
  104. data/spec/support/test_client.rb +1 -1
  105. data/spec/support/test_client.yml.example +10 -10
  106. metadata +10 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 775e6ed1950061ebe5279c61fff8acf00bfa05a2
4
- data.tar.gz: fc0faafd31a106b8b68efe324fd96f70f89989e4
3
+ metadata.gz: '080ae143f80944f8bc6dc8c5d52af3bb9705e418'
4
+ data.tar.gz: 846d1a48a1b3bdb6e8161d0302c3508e1c67417f
5
5
  SHA512:
6
- metadata.gz: a8c7827313ac1b86e7224a54691c650252703c9b29036f69450a469ce924034cb1cf62e758af6d054c9b0a45646464273db4b0a16e57ad69c25c92cea8ce061c
7
- data.tar.gz: 7d66559d01009bc676694f0d7807f01051f02d2cb80a08e86d46fe8cf25e21b2ed6daf6c8bd28ef9801fc1f6b759bf34a37b003abc37c8a592297961d83b0aa0
6
+ metadata.gz: e9cb1426cbd8d663f4e948e3d8ea08c09942f6702faab39975c77925e3af377a9cfe459c4d6e7777218df33cc19028ab13992f9bf47abf8bed82d23c7e12e8ee
7
+ data.tar.gz: 3f58c010d040ea7d4cc965e58594709fd22fe2e544c56936daaa69c890841d7a28213644fcefe17efce2992ec3dffedf88474bc113ff31841263a43a3d9ca30d
data/.document CHANGED
@@ -1,5 +1,5 @@
1
- README.rdoc
2
- lib/**/*.rb
3
- bin/*
4
- features/**/*.feature
5
- LICENSE
1
+ README.rdoc
2
+ lib/**/*.rb
3
+ bin/*
4
+ features/**/*.feature
5
+ LICENSE
data/.gitignore CHANGED
@@ -17,6 +17,9 @@ tmtags
17
17
  ## VIM
18
18
  *.swp
19
19
 
20
+ ## VS Code
21
+ .vscode/
22
+
20
23
  ## PROJECT::GENERAL
21
24
  coverage
22
25
  rdoc
data/Gemfile CHANGED
@@ -1,17 +1,17 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
4
-
5
- group :guard do
6
- gem 'guard-rspec'
7
- gem 'rb-fsevent'
8
- gem 'terminal-notifier-guard'
9
- end
10
-
11
- platforms :mri do
12
- gem 'yajl-ruby'
13
- end
14
-
15
- platforms :jruby, :rbx do
16
- gem 'json'
17
- end
1
+ source "https://rubygems.org"
2
+
3
+ gemspec
4
+
5
+ group :guard do
6
+ gem 'guard-rspec'
7
+ gem 'rb-fsevent'
8
+ gem 'terminal-notifier-guard'
9
+ end
10
+
11
+ platforms :mri do
12
+ gem 'yajl-ruby'
13
+ end
14
+
15
+ platforms :jruby, :rbx do
16
+ gem 'json'
17
+ end
data/Guardfile CHANGED
@@ -1,20 +1,20 @@
1
- # A sample Guardfile
2
- # More info at https://github.com/guard/guard#readme
3
-
4
- # Note: The cmd option is now required due to the increasing number of ways
5
- # rspec may be run, below are examples of the most common uses.
6
- # * bundler: 'bundle exec rspec'
7
- # * bundler binstubs: 'bin/rspec'
8
- # * spring: 'bin/rsspec' (This will use spring if running and you have
9
- # installed the spring binstubs per the docs)
10
- # * zeus: 'zeus rspec' (requires the server to be started separetly)
11
- # * 'just' rspec: 'rspec'
12
- guard :rspec, cmd: 'bundle exec rspec', all_after_pass: true, all_on_start: true do
13
- watch(%r{^spec/.+_spec\.rb$})
14
- watch(%r{^lib/riak/(.+)\.rb$}) { |m| "spec/riak/#{m[1]}_spec.rb" }
15
- watch(%r{^lib/riak/client/}) { 'spec/riak/beefcake_protobuffs_backend' }
16
- watch('spec/spec_helper.rb') { "spec" }
17
-
18
- watch(/^spec\/integration/) { 'spec:integration' }
19
- end
20
-
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ # Note: The cmd option is now required due to the increasing number of ways
5
+ # rspec may be run, below are examples of the most common uses.
6
+ # * bundler: 'bundle exec rspec'
7
+ # * bundler binstubs: 'bin/rspec'
8
+ # * spring: 'bin/rsspec' (This will use spring if running and you have
9
+ # installed the spring binstubs per the docs)
10
+ # * zeus: 'zeus rspec' (requires the server to be started separetly)
11
+ # * 'just' rspec: 'rspec'
12
+ guard :rspec, cmd: 'bundle exec rspec', all_after_pass: true, all_on_start: true do
13
+ watch(%r{^spec/.+_spec\.rb$})
14
+ watch(%r{^lib/riak/(.+)\.rb$}) { |m| "spec/riak/#{m[1]}_spec.rb" }
15
+ watch(%r{^lib/riak/client/}) { 'spec/riak/beefcake_protobuffs_backend' }
16
+ watch('spec/spec_helper.rb') { "spec" }
17
+
18
+ watch(/^spec\/integration/) { 'spec:integration' }
19
+ end
20
+
data/LICENSE.md CHANGED
@@ -1,16 +1,16 @@
1
- Copyright 2010-2016 Sean Cribbs and Basho Technologies, Inc.
2
-
3
- Licensed under the Apache License, Version 2.0 (the "License");
4
- you may not use this file except in compliance with the License.
5
- You may obtain a copy of the License at
6
-
7
- http://www.apache.org/licenses/LICENSE-2.0
8
-
9
- Unless required by applicable law or agreed to in writing, software
10
- distributed under the License is distributed on an "AS IS" BASIS,
11
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- See the License for the specific language governing permissions and
13
- limitations under the License.
14
-
15
- All of the files in this project are under the project-wide license
16
- unless they are otherwise marked.
1
+ Copyright 2010-2016 Sean Cribbs and Basho Technologies, Inc.
2
+
3
+ Licensed under the Apache License, Version 2.0 (the "License");
4
+ you may not use this file except in compliance with the License.
5
+ You may obtain a copy of the License at
6
+
7
+ http://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ Unless required by applicable law or agreed to in writing, software
10
+ distributed under the License is distributed on an "AS IS" BASIS,
11
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ See the License for the specific language governing permissions and
13
+ limitations under the License.
14
+
15
+ All of the files in this project are under the project-wide license
16
+ unless they are otherwise marked.
@@ -1,5 +1,9 @@
1
1
  # Riak Ruby Client Release Notes
2
2
 
3
+ ## [`2.5.0` Release - 2016-11-16](https://github.com/basho/riak-ruby-client/issues?q=milestone%3Ariak-ruby-client-2.5.0)
4
+
5
+ Version `2.5.0` adds support for the HyperLogLog data type in Riak 2.2.0.
6
+
3
7
  ## [`2.4.1` Release - 2016-08-02](https://github.com/basho/riak-ruby-client/issues?q=milestone%3Ariak-ruby-client-2.4.1)
4
8
 
5
9
  Version `2.4.1` is a bugfix release that addresses some issues when using Ruby `1.9.3`.
data/Rakefile CHANGED
@@ -75,6 +75,11 @@ namespace :spec do
75
75
  RSpec::Core::RakeTask.new(:time_series) do |spec|
76
76
  spec.rspec_opts = %w[--profile --tag time_series]
77
77
  end
78
+
79
+ desc "Run Security Specs Only"
80
+ RSpec::Core::RakeTask.new(:security) do |spec|
81
+ spec.rspec_opts = %w[--profile --tag yes_security --tag ~time_series]
82
+ end
78
83
  end
79
84
 
80
85
  desc "Run Unit Test Specs (excluding slow, integration and time_series)"
@@ -113,7 +118,7 @@ namespace :beefcake do
113
118
 
114
119
  directory 'tmp/riak_pb' => 'tmp' do
115
120
  cd 'tmp' do
116
- sh "git clone -b 2.1.3.0 https://github.com/basho/riak_pb.git"
121
+ sh "git clone -b 2.2 https://github.com/basho/riak_pb.git"
117
122
  end
118
123
  end
119
124
  end
@@ -1,18 +1,18 @@
1
- class Riak::Client::BeefcakeProtobuffsBackend
2
- class CrdtLoader
3
- class CounterLoader
4
- def self.for_value(resp)
5
- return nil unless resp.counter_value
6
- new resp.counter_value
7
- end
8
-
9
- def initialize(counter_value)
10
- @value = counter_value
11
- end
12
-
13
- def rubyfy
14
- @value
15
- end
16
- end
17
- end
18
- end
1
+ class Riak::Client::BeefcakeProtobuffsBackend
2
+ class CrdtLoader
3
+ class CounterLoader
4
+ def self.for_value(resp)
5
+ return nil unless resp.counter_value
6
+ new resp.counter_value
7
+ end
8
+
9
+ def initialize(counter_value)
10
+ @value = counter_value
11
+ end
12
+
13
+ def rubyfy
14
+ @value
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ class Riak::Client::BeefcakeProtobuffsBackend
2
+ class CrdtLoader
3
+ class HyperLogLogLoader
4
+ def self.for_value(resp)
5
+ return nil unless resp.hll_value
6
+ new resp.hll_value
7
+ end
8
+
9
+ def initialize(hll_value)
10
+ @value = hll_value
11
+ end
12
+
13
+ def rubyfy
14
+ @value
15
+ end
16
+ end
17
+ end
18
+ end
@@ -1,64 +1,64 @@
1
- class Riak::Client::BeefcakeProtobuffsBackend
2
- class CrdtLoader
3
- class MapLoader
4
- def self.for_value(resp)
5
- return nil unless resp.map_value
6
- new resp.map_value
7
- end
8
-
9
- def initialize(map_value)
10
- @value = map_value
11
- end
12
-
13
- def rubyfy
14
- accum = {
15
- counters: {},
16
- flags: {},
17
- maps: {},
18
- registers: {},
19
- sets: {}
20
- }
21
-
22
- contents_loop @value, accum
23
- end
24
-
25
- private
26
-
27
- def rubyfy_inner(accum, map_value)
28
- destination = accum[:maps][map_value.field.name]
29
- if destination.nil?
30
- destination = accum[:maps][map_value.field.name] = {
31
- counters: {},
32
- flags: {},
33
- maps: {},
34
- registers: {},
35
- sets: {}
36
- }
37
- end
38
-
39
- contents_loop map_value.map_value, destination
40
- end
41
-
42
- def contents_loop(rolling_value, destination)
43
- return destination if rolling_value.nil?
44
-
45
- rolling_value.each do |inner|
46
- case inner.field.type
47
- when MapField::MapFieldType::COUNTER
48
- destination[:counters][inner.field.name] = inner.counter_value
49
- when MapField::MapFieldType::FLAG
50
- destination[:flags][inner.field.name] = inner.flag_value
51
- when MapField::MapFieldType::MAP
52
- rubyfy_inner destination, inner
53
- when MapField::MapFieldType::REGISTER
54
- destination[:registers][inner.field.name] = inner.register_value
55
- when MapField::MapFieldType::SET
56
- destination[:sets][inner.field.name] = ::Set.new inner.set_value
57
- end
58
- end
59
-
60
- return destination
61
- end
62
- end
63
- end
64
- end
1
+ class Riak::Client::BeefcakeProtobuffsBackend
2
+ class CrdtLoader
3
+ class MapLoader
4
+ def self.for_value(resp)
5
+ return nil unless resp.map_value
6
+ new resp.map_value
7
+ end
8
+
9
+ def initialize(map_value)
10
+ @value = map_value
11
+ end
12
+
13
+ def rubyfy
14
+ accum = {
15
+ counters: {},
16
+ flags: {},
17
+ maps: {},
18
+ registers: {},
19
+ sets: {}
20
+ }
21
+
22
+ contents_loop @value, accum
23
+ end
24
+
25
+ private
26
+
27
+ def rubyfy_inner(accum, map_value)
28
+ destination = accum[:maps][map_value.field.name]
29
+ if destination.nil?
30
+ destination = accum[:maps][map_value.field.name] = {
31
+ counters: {},
32
+ flags: {},
33
+ maps: {},
34
+ registers: {},
35
+ sets: {}
36
+ }
37
+ end
38
+
39
+ contents_loop map_value.map_value, destination
40
+ end
41
+
42
+ def contents_loop(rolling_value, destination)
43
+ return destination if rolling_value.nil?
44
+
45
+ rolling_value.each do |inner|
46
+ case inner.field.type
47
+ when MapField::MapFieldType::COUNTER
48
+ destination[:counters][inner.field.name] = inner.counter_value
49
+ when MapField::MapFieldType::FLAG
50
+ destination[:flags][inner.field.name] = inner.flag_value
51
+ when MapField::MapFieldType::MAP
52
+ rubyfy_inner destination, inner
53
+ when MapField::MapFieldType::REGISTER
54
+ destination[:registers][inner.field.name] = inner.register_value
55
+ when MapField::MapFieldType::SET
56
+ destination[:sets][inner.field.name] = ::Set.new inner.set_value
57
+ end
58
+ end
59
+
60
+ return destination
61
+ end
62
+ end
63
+ end
64
+ end
@@ -1,4 +1,5 @@
1
1
  require 'riak/client/beefcake/crdt/counter_loader'
2
+ require 'riak/client/beefcake/crdt/hyper_log_log_loader'
2
3
  require 'riak/client/beefcake/crdt/map_loader'
3
4
  require 'riak/client/beefcake/crdt/set_loader'
4
5
 
@@ -47,7 +48,7 @@ module Riak
47
48
  def get_loader_for_value(value)
48
49
  return nil if value.nil?
49
50
 
50
- [CounterLoader, MapLoader, SetLoader].map do |loader|
51
+ [CounterLoader, HyperLogLogLoader, MapLoader, SetLoader].map do |loader|
51
52
  loader.for_value value
52
53
  end.compact.first
53
54
  end
@@ -76,6 +77,8 @@ module Riak
76
77
  registers: {},
77
78
  sets: {},
78
79
  }
80
+ when DtFetchResp::DataType::HLL
81
+ 0
79
82
  end
80
83
  end
81
84
  end
@@ -68,6 +68,8 @@ module Riak
68
68
  case operations.first.type
69
69
  when :counter
70
70
  serialize_counter operations
71
+ when :hll
72
+ serialize_hyper_log_log operations
71
73
  when :set
72
74
  serialize_set operations
73
75
  when :map
@@ -170,6 +172,17 @@ module Riak
170
172
  )
171
173
  end
172
174
 
175
+ def serialize_hyper_log_log(hyper_log_log_ops)
176
+ adds = ::Set.new
177
+ hyper_log_log_ops.each do |o|
178
+ adds.add [o.value[:add]] if o.value[:add]
179
+ end
180
+
181
+ HllOp.new(
182
+ adds: adds.to_a.flatten
183
+ )
184
+ end
185
+
173
186
  def serialize_inner_set(set_op)
174
187
  value = set_op.value or nil
175
188
 
@@ -1,4 +1,4 @@
1
-
2
- end
3
- end
4
- end
1
+
2
+ end
3
+ end
4
+ end
@@ -1,6 +1,6 @@
1
- require 'beefcake'
2
-
3
- module Riak
4
- class Client
5
- # @private
6
- class BeefcakeProtobuffsBackend
1
+ require 'beefcake'
2
+
3
+ module Riak
4
+ class Client
5
+ # @private
6
+ class BeefcakeProtobuffsBackend
@@ -1,9 +1,9 @@
1
- require 'beefcake'
2
-
3
- module Riak
4
- class Client
5
- # @private
6
- class BeefcakeProtobuffsBackend
1
+ require 'beefcake'
2
+
3
+ module Riak
4
+ class Client
5
+ # @private
6
+ class BeefcakeProtobuffsBackend
7
7
  ## Generated from riak.proto
8
8
  require "beefcake"
9
9
 
@@ -150,6 +150,7 @@ class RpbBucketProps
150
150
  optional :datatype, :bytes, 26
151
151
  optional :consistent, :bool, 27
152
152
  optional :write_once, :bool, 28
153
+ optional :hll_precision, :uint32, 29
153
154
  end
154
155
 
155
156
  class RpbAuthReq
@@ -682,6 +683,7 @@ class DtFetchResp
682
683
  COUNTER = 1
683
684
  SET = 2
684
685
  MAP = 3
686
+ HLL = 4
685
687
  end
686
688
  end
687
689
 
@@ -693,6 +695,10 @@ class SetOp
693
695
  include Beefcake::Message
694
696
  end
695
697
 
698
+ class HllOp
699
+ include Beefcake::Message
700
+ end
701
+
696
702
  class MapUpdate
697
703
  include Beefcake::Message
698
704
 
@@ -750,6 +756,7 @@ class DtValue
750
756
  optional :counter_value, :sint64, 1
751
757
  repeated :set_value, :bytes, 2
752
758
  repeated :map_value, MapEntry, 3
759
+ optional :hll_value, :uint64, 4
753
760
  end
754
761
 
755
762
  class DtFetchResp
@@ -767,6 +774,10 @@ class SetOp
767
774
  repeated :removes, :bytes, 2
768
775
  end
769
776
 
777
+ class HllOp
778
+ repeated :adds, :bytes, 1
779
+ end
780
+
770
781
  class MapUpdate
771
782
  required :field, MapField, 1
772
783
  optional :counter_op, CounterOp, 2
@@ -785,6 +796,7 @@ class DtOp
785
796
  optional :counter_op, CounterOp, 1
786
797
  optional :set_op, SetOp, 2
787
798
  optional :map_op, MapOp, 3
799
+ optional :hll_op, HllOp, 4
788
800
  end
789
801
 
790
802
  class DtUpdateReq
@@ -809,6 +821,7 @@ class DtUpdateResp
809
821
  optional :counter_value, :sint64, 3
810
822
  repeated :set_value, :bytes, 4
811
823
  repeated :map_value, MapEntry, 5
824
+ optional :hll_value, :uint64, 6
812
825
  end
813
826
  ## Generated from riak_ts.proto
814
827
  require "beefcake"
@@ -878,9 +891,26 @@ class TsListKeysResp
878
891
  include Beefcake::Message
879
892
  end
880
893
 
894
+ class TsCoverageReq
895
+ include Beefcake::Message
896
+ end
897
+
898
+ class TsCoverageResp
899
+ include Beefcake::Message
900
+ end
901
+
902
+ class TsCoverageEntry
903
+ include Beefcake::Message
904
+ end
905
+
906
+ class TsRange
907
+ include Beefcake::Message
908
+ end
909
+
881
910
  class TsQueryReq
882
911
  optional :query, TsInterpolation, 1
883
912
  optional :stream, :bool, 2, :default => false
913
+ optional :cover_context, :bytes, 3
884
914
  end
885
915
 
886
916
  class TsQueryResp
@@ -950,7 +980,34 @@ class TsListKeysResp
950
980
  repeated :keys, TsRow, 1
951
981
  optional :done, :bool, 2
952
982
  end
953
-
954
- end
955
- end
956
- end
983
+
984
+ class TsCoverageReq
985
+ optional :query, TsInterpolation, 1
986
+ required :table, :bytes, 2
987
+ optional :replace_cover, :bytes, 3
988
+ repeated :unavailable_cover, :bytes, 4
989
+ end
990
+
991
+ class TsCoverageResp
992
+ repeated :entries, TsCoverageEntry, 1
993
+ end
994
+
995
+ class TsCoverageEntry
996
+ required :ip, :bytes, 1
997
+ required :port, :uint32, 2
998
+ required :cover_context, :bytes, 3
999
+ optional :range, TsRange, 4
1000
+ end
1001
+
1002
+ class TsRange
1003
+ required :field_name, :bytes, 1
1004
+ required :lower_bound, :sint64, 2
1005
+ required :lower_bound_inclusive, :bool, 3
1006
+ required :upper_bound, :sint64, 4
1007
+ required :upper_bound_inclusive, :bool, 5
1008
+ required :desc, :bytes, 6
1009
+ end
1010
+
1011
+ end
1012
+ end
1013
+ end