aerospike 2.21.1 → 2.23.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +16 -1
- data/lib/aerospike/atomic/atomic.rb +1 -1
- data/lib/aerospike/cdt/context.rb +7 -7
- data/lib/aerospike/cdt/list_return_type.rb +4 -0
- data/lib/aerospike/cdt/map_operation.rb +6 -6
- data/lib/aerospike/cdt/map_return_type.rb +4 -0
- data/lib/aerospike/client.rb +34 -59
- data/lib/aerospike/cluster.rb +6 -3
- data/lib/aerospike/command/admin_command.rb +2 -2
- data/lib/aerospike/command/batch_index_node.rb +1 -1
- data/lib/aerospike/command/batch_item.rb +1 -1
- data/lib/aerospike/command/command.rb +62 -30
- data/lib/aerospike/command/field_type.rb +3 -0
- data/lib/aerospike/command/login_command.rb +7 -5
- data/lib/aerospike/command/multi_command.rb +8 -2
- data/lib/aerospike/command/read_command.rb +2 -2
- data/lib/aerospike/connection/authenticate.rb +4 -4
- data/lib/aerospike/features.rb +9 -9
- data/lib/aerospike/host/parse.rb +2 -2
- data/lib/aerospike/key.rb +10 -1
- data/lib/aerospike/node/refresh/info.rb +1 -1
- data/lib/aerospike/node/verify/name.rb +1 -1
- data/lib/aerospike/node/verify/partition_generation.rb +1 -1
- data/lib/aerospike/node/verify/peers_generation.rb +1 -1
- data/lib/aerospike/node/verify/rebalance_generation.rb +1 -1
- data/lib/aerospike/node_validator.rb +6 -1
- data/lib/aerospike/policy/policy.rb +4 -1
- data/lib/aerospike/policy/scan_policy.rb +20 -1
- data/lib/aerospike/privilege.rb +1 -1
- data/lib/aerospike/query/node_partitions.rb +39 -0
- data/lib/aerospike/query/partition_filter.rb +66 -0
- data/lib/aerospike/query/partition_status.rb +36 -0
- data/lib/aerospike/query/partition_tracker.rb +347 -0
- data/lib/aerospike/query/scan_command.rb +3 -3
- data/lib/aerospike/query/scan_executor.rb +69 -0
- data/lib/aerospike/query/scan_partition_command.rb +49 -0
- data/lib/aerospike/query/statement.rb +1 -1
- data/lib/aerospike/query/stream_command.rb +14 -1
- data/lib/aerospike/result_code.rb +79 -4
- data/lib/aerospike/role.rb +2 -2
- data/lib/aerospike/task/execute_task.rb +2 -2
- data/lib/aerospike/task/index_task.rb +1 -1
- data/lib/aerospike/user_role.rb +1 -1
- data/lib/aerospike/utils/buffer.rb +12 -0
- data/lib/aerospike/utils/pool.rb +1 -1
- data/lib/aerospike/value/value.rb +6 -6
- data/lib/aerospike/version.rb +1 -1
- data/lib/aerospike.rb +6 -0
- metadata +11 -5
@@ -38,6 +38,7 @@ module Aerospike
|
|
38
38
|
UINT32 = 'N'
|
39
39
|
INT64 = 'q>'
|
40
40
|
UINT64 = 'Q>'
|
41
|
+
UINT64LE = 'Q'
|
41
42
|
DOUBLE = 'G'
|
42
43
|
|
43
44
|
DEFAULT_BUFFER_SIZE = 16 * 1024
|
@@ -67,6 +68,12 @@ module Aerospike
|
|
67
68
|
end
|
68
69
|
|
69
70
|
def resize(length)
|
71
|
+
# Corrupted data streams can result in a hug.length.
|
72
|
+
# Do a sanity check here.
|
73
|
+
if length > MAX_BUFFER_SIZE
|
74
|
+
raise Aerospike::Exceptions::Parse.new("Invalid size for buffer: #{length}")
|
75
|
+
end
|
76
|
+
|
70
77
|
if @buf.bytesize < length
|
71
78
|
@buf.concat("%0#{length - @buf.bytesize}d" % 0)
|
72
79
|
end
|
@@ -156,6 +163,11 @@ module Aerospike
|
|
156
163
|
vals.unpack(INT64)[0]
|
157
164
|
end
|
158
165
|
|
166
|
+
def read_uint64_little_endian(offset)
|
167
|
+
vals = @buf[offset..offset+7]
|
168
|
+
vals.unpack(UINT64LE)[0]
|
169
|
+
end
|
170
|
+
|
159
171
|
def read_uint64(offset)
|
160
172
|
vals = @buf[offset..offset+7]
|
161
173
|
vals.unpack(UINT64)[0]
|
data/lib/aerospike/utils/pool.rb
CHANGED
@@ -26,19 +26,19 @@ module Aerospike
|
|
26
26
|
def self.of(value, allow_64bits = false)
|
27
27
|
case value
|
28
28
|
when Integer
|
29
|
-
if
|
30
|
-
|
29
|
+
if allow_64bits
|
30
|
+
# used in bitwise operations
|
31
|
+
if value.bit_length <= 64
|
31
32
|
res = IntegerValue.new(value)
|
32
33
|
else
|
33
|
-
#
|
34
|
+
# nums with more than 64 bits are not supported
|
34
35
|
raise Aerospike::Exceptions::Aerospike.new(Aerospike::ResultCode::TYPE_NOT_SUPPORTED, "Value type #{value.class} not supported with more than 64 bits.")
|
35
36
|
end
|
36
37
|
else
|
37
|
-
|
38
|
-
if value.bit_length <= 64
|
38
|
+
if value.bit_length < 64
|
39
39
|
res = IntegerValue.new(value)
|
40
40
|
else
|
41
|
-
# nums
|
41
|
+
# big nums > 2**63 are not supported
|
42
42
|
raise Aerospike::Exceptions::Aerospike.new(Aerospike::ResultCode::TYPE_NOT_SUPPORTED, "Value type #{value.class} not supported with more than 64 bits.")
|
43
43
|
end
|
44
44
|
end
|
data/lib/aerospike/version.rb
CHANGED
data/lib/aerospike.rb
CHANGED
@@ -160,6 +160,12 @@ require 'aerospike/query/query_command'
|
|
160
160
|
require 'aerospike/query/scan_command'
|
161
161
|
require 'aerospike/query/statement'
|
162
162
|
require 'aerospike/query/pred_exp'
|
163
|
+
require 'aerospike/query/partition_tracker'
|
164
|
+
require 'aerospike/query/partition_status'
|
165
|
+
require 'aerospike/query/partition_filter'
|
166
|
+
require 'aerospike/query/node_partitions'
|
167
|
+
require 'aerospike/query/scan_executor'
|
168
|
+
require 'aerospike/query/scan_partition_command'
|
163
169
|
|
164
170
|
require 'aerospike/query/pred_exp/and_or'
|
165
171
|
require 'aerospike/query/pred_exp/geo_json_value'
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aerospike
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.23.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Khosrow Afroozeh
|
8
8
|
- Jan Hecking
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2022-
|
12
|
+
date: 2022-10-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: msgpack
|
@@ -155,6 +155,10 @@ files:
|
|
155
155
|
- lib/aerospike/policy/write_policy.rb
|
156
156
|
- lib/aerospike/privilege.rb
|
157
157
|
- lib/aerospike/query/filter.rb
|
158
|
+
- lib/aerospike/query/node_partitions.rb
|
159
|
+
- lib/aerospike/query/partition_filter.rb
|
160
|
+
- lib/aerospike/query/partition_status.rb
|
161
|
+
- lib/aerospike/query/partition_tracker.rb
|
158
162
|
- lib/aerospike/query/pred_exp.rb
|
159
163
|
- lib/aerospike/query/pred_exp/and_or.rb
|
160
164
|
- lib/aerospike/query/pred_exp/geo_json_value.rb
|
@@ -166,6 +170,8 @@ files:
|
|
166
170
|
- lib/aerospike/query/query_command.rb
|
167
171
|
- lib/aerospike/query/recordset.rb
|
168
172
|
- lib/aerospike/query/scan_command.rb
|
173
|
+
- lib/aerospike/query/scan_executor.rb
|
174
|
+
- lib/aerospike/query/scan_partition_command.rb
|
169
175
|
- lib/aerospike/query/statement.rb
|
170
176
|
- lib/aerospike/query/stream_command.rb
|
171
177
|
- lib/aerospike/record.rb
|
@@ -212,8 +218,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
212
218
|
- !ruby/object:Gem::Version
|
213
219
|
version: '0'
|
214
220
|
requirements: []
|
215
|
-
rubygems_version: 3.
|
216
|
-
signing_key:
|
221
|
+
rubygems_version: 3.1.6
|
222
|
+
signing_key:
|
217
223
|
specification_version: 4
|
218
224
|
summary: An Aerospike driver for Ruby.
|
219
225
|
test_files: []
|