aerospike 2.19.0 → 2.26.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +354 -244
- data/lib/aerospike/atomic/atomic.rb +1 -1
- data/lib/aerospike/cdt/context.rb +137 -70
- data/lib/aerospike/cdt/list_return_type.rb +4 -0
- data/lib/aerospike/cdt/map_operation.rb +6 -6
- data/lib/aerospike/cdt/map_policy.rb +16 -2
- data/lib/aerospike/cdt/map_return_type.rb +13 -1
- data/lib/aerospike/client.rb +137 -115
- data/lib/aerospike/cluster/create_connection.rb +1 -1
- data/lib/aerospike/cluster.rb +41 -4
- data/lib/aerospike/command/admin_command.rb +368 -52
- data/lib/aerospike/command/batch_index_command.rb +4 -8
- data/lib/aerospike/command/batch_index_exists_command.rb +1 -1
- 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 +180 -123
- data/lib/aerospike/command/field_type.rb +25 -24
- data/lib/aerospike/command/login_command.rb +164 -0
- data/lib/aerospike/command/multi_command.rb +25 -2
- data/lib/aerospike/command/operate_args.rb +99 -0
- data/lib/aerospike/command/operate_command.rb +6 -11
- data/lib/aerospike/command/read_command.rb +2 -2
- data/lib/aerospike/connection/authenticate.rb +36 -3
- data/lib/aerospike/exp/exp.rb +1329 -0
- data/lib/aerospike/exp/exp_bit.rb +388 -0
- data/lib/aerospike/exp/exp_hll.rb +169 -0
- data/lib/aerospike/exp/exp_list.rb +403 -0
- data/lib/aerospike/exp/exp_map.rb +493 -0
- data/lib/aerospike/exp/operation.rb +56 -0
- data/lib/aerospike/features.rb +22 -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/operation.rb +20 -22
- data/lib/aerospike/policy/auth_mode.rb +36 -0
- data/lib/aerospike/policy/client_policy.rb +4 -1
- data/lib/aerospike/policy/policy.rb +29 -13
- data/lib/aerospike/policy/query_policy.rb +35 -2
- data/lib/aerospike/policy/scan_policy.rb +19 -2
- data/lib/aerospike/privilege.rb +133 -0
- data/lib/aerospike/query/filter.rb +44 -32
- data/lib/aerospike/query/node_partitions.rb +39 -0
- data/lib/aerospike/query/partition_filter.rb +66 -0
- data/lib/aerospike/{command/roles.rb → query/partition_status.rb} +16 -19
- data/lib/aerospike/query/partition_tracker.rb +347 -0
- data/lib/aerospike/query/query_command.rb +20 -10
- data/lib/aerospike/query/query_executor.rb +71 -0
- data/lib/aerospike/query/query_partition_command.rb +267 -0
- data/lib/aerospike/query/recordset.rb +9 -9
- data/lib/aerospike/query/scan_command.rb +3 -2
- data/lib/aerospike/query/scan_executor.rb +71 -0
- data/lib/aerospike/query/scan_partition_command.rb +49 -0
- data/lib/aerospike/query/statement.rb +8 -1
- data/lib/aerospike/query/stream_command.rb +17 -0
- data/lib/aerospike/result_code.rb +83 -8
- data/lib/aerospike/role.rb +55 -0
- data/lib/aerospike/task/execute_task.rb +19 -16
- data/lib/aerospike/task/index_task.rb +1 -1
- data/lib/aerospike/user_role.rb +26 -1
- data/lib/aerospike/utils/buffer.rb +93 -29
- data/lib/aerospike/utils/packer.rb +7 -6
- data/lib/aerospike/utils/pool.rb +1 -1
- data/lib/aerospike/value/particle_type.rb +1 -12
- data/lib/aerospike/value/value.rb +35 -60
- data/lib/aerospike/version.rb +1 -1
- data/lib/aerospike.rb +156 -136
- metadata +24 -6
data/CHANGELOG.md
CHANGED
@@ -2,478 +2,588 @@
|
|
2
2
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
|
5
|
+
## [2.26.0] 2022-12-02
|
6
|
+
|
7
|
+
- **New Features**
|
8
|
+
- [CLIENT-1808] Support creating a secondary index on elements within a CDT using `Context`.
|
9
|
+
- [CLIENT-1991] Add base64 encoding methods to `Context`.
|
10
|
+
- [CLIENT-2007] Support using `Context` in query filters.
|
11
|
+
|
12
|
+
## [2.25.0] 2022-11-28
|
13
|
+
|
14
|
+
- **New Features**
|
15
|
+
|
16
|
+
- [CLIENT-1984] Support scan-show and query-show info commands.
|
17
|
+
|
18
|
+
- [CLIENT-1362] Adds support Aerospike Expression filters. Expression filters are now supported on all commands, including `Client#get`, `Client#put`, `Client#delete`, `Client#operate`, `Client#scan`, `Client#query`, `Client#execute_udf`, etc.
|
19
|
+
|
20
|
+
- Adds `Policy#filter_exp` and `Policy#fail_on_filtered_out`
|
21
|
+
|
22
|
+
- Bit expressions: `Exp::Bit::` `#resize`, `#insert`, `#remove`, `#set`, `#or`, `#xor`, `#and`, `#not`, `#lshift`, `#rshift`, `#add`, `#subtract`, `#set_int`, `#get`, `#count`, `#lscan`, `#rscan`, `#get_int`, `#pack_math`, `#pack_get_int`, `#add_write`, `#add_read`
|
23
|
+
|
24
|
+
- HLL Expressions: `Exp::HLL::` `#init`, `#add`, `#get_count`, `#get_union`, `#get_union_count`, `#get_intersect_count`, `#get_similarity`, `#describe`, `#may_contain`, `#add_write`, `#add_read`
|
25
|
+
|
26
|
+
- Map Expressions: `Exp::Map::` `#put`, `#put_items`, `#increment`, `#clear`, `#remove_by_key`, `#remove_by_key_list`, `#remove_by_key_range`, `#remove_by_key_relative_index_range`, `#remove_by_value`, `#remove_by_value_list`, `#remove_by_value_range`, `#remove_by_value_relative_rank_range`, `#remove_by_value_relative_rank_range`, `#remove_by_index`, `#remove_by_index_range`, `#remove_by_rank`, `#remove_by_rank_range`, `#size`, `#get_by_key`, `#get_by_key_range`, `#get_by_key_list`, `#get_by_key_relative_index_range`, `#get_by_key_relative_index_range`, `#get_by_value`, `#get_by_value_range`, `#get_by_value_list`, `#get_by_value_relative_rank_range`, `#get_by_index`, `#get_by_index_range`, `#get_by_rank`, `#get_by_rank_range`, `#add_write`, `#add_read`, `#get_value_type`
|
27
|
+
|
28
|
+
- List Expressions: `Exp::List::` `#append`, `#append_items`, `#insert`, `#insert_items`, `#increment`, `#set`, `#clear`, `#sort`, `#remove_by_value`, `#remove_by_value_list`, `#remove_by_value_range`, `#remove_by_value_relative_rank_range`, `#remove_by_index`, `#remove_by_index_range`, `#remove_by_rank`, `#remove_by_rank_range`, `#size`, `#get_by_value`, `#get_by_value_range`, `#get_by_value_list`, `#get_by_value_relative_rank_range`, `#get_by_index`, `#get_by_index_range`, `#get_by_index_range`, `#get_by_rank`, `#get_by_rank_range`, `#get_by_rank_range`, `#add_write`, `#add_read`, `#get_value_type`, `#pack_range_operation`
|
29
|
+
|
30
|
+
- Read and Write operations: `Exp::Operation::` `#write`, `#read`
|
31
|
+
|
32
|
+
## [2.24.0] 2022-11-15
|
33
|
+
|
34
|
+
- **New Features**
|
35
|
+
- [CLIENT-1730] Support partition queries.
|
36
|
+
- [CLIENT-1469] Support query pagination through client#query_partitions with PartitionFilter
|
37
|
+
- [CLIENT-1975] Add support for #max_records and #short_query to QueryPolicy
|
38
|
+
- [CLIENT-1976] Add support for #concurrent_nodes to QueryPolicy
|
39
|
+
|
40
|
+
## [2.23.0] 2022-10-25
|
41
|
+
|
42
|
+
- **New Features**
|
43
|
+
- [CLIENT-1752] Add 'EXISTS' return type for CDT read operations.
|
44
|
+
- [CLIENT-1195] Support partition scans.
|
45
|
+
- [CLIENT-1238] Support max_records on partition scans.
|
46
|
+
- [CLIENT-1940] Lint and Clean up using Rubocop.
|
47
|
+
|
48
|
+
## [2.22.0] 2022-07-14
|
49
|
+
|
50
|
+
- **Fixes**
|
51
|
+
- [CLIENT-1785] Fix Client#read_users to avoid error. PR #112 Thanks to [Dotan Mor](https://github.com/dotan-mor)
|
52
|
+
- [CLIENT-1787] Support multiple DNS IPs during connection.
|
53
|
+
- [CLIENT-1789] Authentication Retry fails in certain conditions.
|
54
|
+
|
55
|
+
## [2.21.1] - 2022-06-21
|
56
|
+
|
57
|
+
This s hotfix release. It is recommended to upgrade your client if you use authentication.
|
58
|
+
|
59
|
+
- **Bug Fixes**
|
60
|
+
- Fix called function name in Authenticate.
|
61
|
+
|
62
|
+
## [2.21.0] - 2022-06-07
|
63
|
+
|
64
|
+
- **New Features**
|
65
|
+
|
66
|
+
- Add support for new user management features. Adds `Client#query_role`, `Client#query_roles`, `Client#create_role`, `Client#drop_role`, `Client#grant_privileges`, `Client#revoke_privileges`. Adds the 'Role' class. Adds `UserRoles#read_info`, `UserRoles#write_info`, `UserRoles#conns_in_use` to the `UserRoles` class.
|
67
|
+
|
68
|
+
- **Improvements**
|
69
|
+
- Do not run PredExp tests for server v6+.
|
70
|
+
|
71
|
+
## [2.20.1] - 2022-05-11
|
72
|
+
|
73
|
+
- **Improvements**
|
74
|
+
- Add basic support for the new authentication protocol.
|
75
|
+
|
76
|
+
## [2.20.0] - 2021-11-08
|
77
|
+
|
78
|
+
Notice: This version of the client only supports Aerospike Server v4.9 and later. Some features will work for the older server versions, but they are not tested, nor officially supported.
|
79
|
+
|
80
|
+
- **New Features**
|
81
|
+
|
82
|
+
- [CLIENT-1467] Support native Boolean type for server v5.6+.
|
83
|
+
|
84
|
+
- **Improvements**
|
85
|
+
- Add basic support for server v4.9+ scan/queries.
|
86
|
+
- Don't check for key equality in Batch command results.
|
87
|
+
|
5
88
|
## [2.19.0] - 2020-02-09
|
6
89
|
|
7
|
-
|
8
|
-
|
9
|
-
|
90
|
+
- **Improvements**
|
91
|
+
- Remove Timeout in `wait_till_stabilized` in favor of `thread.join(timeout)` . Thanks to [Marcelo](https://github.com/MarcPer) [[#104](https://github.com/aerospike/aerospike-client-ruby/pull/104)]
|
92
|
+
- Adds `ResultCode::LOST_CONFLICT`
|
10
93
|
|
11
94
|
## [2.18.0] - 2020-12-01
|
12
95
|
|
13
|
-
|
14
|
-
|
15
|
-
|
96
|
+
- **Bug Fixes**
|
97
|
+
|
98
|
+
- Avoid panic if `Command#get_node` fails in `Command#execute`. Resolves issue #101.
|
99
|
+
- Fix wrong method invocation inside `Client#truncate` method. Thanks to [Alexander](https://github.com/selivandex)
|
16
100
|
|
17
|
-
|
18
|
-
|
101
|
+
- **Improvements**
|
102
|
+
- Added missing server error codes.
|
19
103
|
|
20
104
|
## [2.17.0] - 2020-10-15
|
21
105
|
|
22
|
-
|
23
|
-
* [CLIENT-1246] Adds missing API for Context#list_index_create and Context#map_key_create
|
106
|
+
- **New Features**
|
24
107
|
|
25
|
-
|
26
|
-
|
108
|
+
- [CLIENT-1246] Adds missing API for Context#list_index_create and Context#map_key_create
|
109
|
+
|
110
|
+
- **Bug Fixes**
|
111
|
+
- Fixed an issue were MsgPack extensions were not recursively cleared from the CDTs during unpacking.
|
27
112
|
|
28
113
|
## [2.16.0] - 2020-10-12
|
29
114
|
|
30
|
-
|
31
|
-
|
32
|
-
|
115
|
+
- **New Features**
|
116
|
+
|
117
|
+
- [CLIENT-1173], [CLIENT-1246] Support Nested CDT operations with Context.
|
118
|
+
- [CLIENT-1179], Support Bitwise operations.
|
33
119
|
|
34
|
-
|
35
|
-
|
120
|
+
- **Changes**
|
121
|
+
- `ListSortFlags` now has an `ASCENDING` option, with `DEFAULT` mapping to it.
|
36
122
|
|
37
123
|
## [2.15.0] - 2020-10-05
|
38
124
|
|
39
|
-
|
40
|
-
* [CLIENT-1254] Adds support for HyperLogLog.
|
125
|
+
- **New Features**
|
41
126
|
|
42
|
-
|
43
|
-
|
127
|
+
- [CLIENT-1254] Adds support for HyperLogLog.
|
128
|
+
|
129
|
+
- **Changes**
|
130
|
+
- `Client#operate` now uses `OperatePolicy` by default.
|
44
131
|
|
45
132
|
## [2.14.0] - 2020-08-06
|
46
133
|
|
47
|
-
|
48
|
-
|
49
|
-
|
134
|
+
- **New Features**
|
135
|
+
|
136
|
+
- Adds support for rack-aware reads.
|
137
|
+
- Adds support for client-server compression.
|
50
138
|
|
51
|
-
|
52
|
-
|
139
|
+
- **Improvements**
|
140
|
+
- Adds support for `truncate-namespace` command.
|
53
141
|
|
54
142
|
## [2.13.0] - 2020-07-17
|
55
143
|
|
56
|
-
|
57
|
-
* Adds support for replica policies.
|
144
|
+
- **New Features**
|
58
145
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
146
|
+
- Adds support for replica policies.
|
147
|
+
|
148
|
+
- **Improvements**
|
149
|
+
- Remove support for "old" partition tokenizer.
|
150
|
+
- Refactor how partition parser is initialized and called.
|
151
|
+
- Adds support for 'replicas' and remove the old partition table queries from the server.
|
63
152
|
|
64
153
|
## [2.12.0] - 2019-04-21
|
65
154
|
|
66
|
-
|
67
|
-
|
68
|
-
|
155
|
+
- **New Features**
|
156
|
+
|
157
|
+
- Support for predicate expressions in all transaction.
|
158
|
+
- Support for `operation.delete` in `client#operate`.
|
69
159
|
|
70
|
-
|
71
|
-
* Optimize serialization for nested structures. Thanks to [@Kacper Madej](https://github.com/madejejej)! [[#94](https://github.com/aerospike/aerospike-client-ruby/pull/94)]
|
72
|
-
* Remove `Thread#abort_on_exception` from `batch_index_command`. Thanks to [@Kacper Madej](https://github.com/madejejej)! [[#92](https://github.com/aerospike/aerospike-client-ruby/pull/92)]
|
73
|
-
* Does not allow values other than Integer, Float, String, Symbol and nil to be used as keys in Maps.
|
160
|
+
- **Improvements**
|
74
161
|
|
75
|
-
|
76
|
-
|
162
|
+
- Optimize serialization for nested structures. Thanks to [@Kacper Madej](https://github.com/madejejej)! [[#94](https://github.com/aerospike/aerospike-client-ruby/pull/94)]
|
163
|
+
- Remove `Thread#abort_on_exception` from `batch_index_command`. Thanks to [@Kacper Madej](https://github.com/madejejej)! [[#92](https://github.com/aerospike/aerospike-client-ruby/pull/92)]
|
164
|
+
- Does not allow values other than Integer, Float, String, Symbol and nil to be used as keys in Maps.
|
77
165
|
|
166
|
+
- **Bug Fixes**
|
167
|
+
- Fixes tests that weren't using ENV variables for connections. This will allow the tests to be run on any server.
|
78
168
|
|
79
169
|
## [2.11.0] - 2019-05-17
|
80
170
|
|
81
|
-
|
82
|
-
* Support for predicate expressions in queries. Thanks to [@Minus10Degrees](https://github.com/Minus10Degrees)! [[#78](https://github.com/aerospike/aerospike-client-ruby/issues/78)]
|
171
|
+
- **New Features**
|
83
172
|
|
84
|
-
|
85
|
-
|
86
|
-
|
173
|
+
- Support for predicate expressions in queries. Thanks to [@Minus10Degrees](https://github.com/Minus10Degrees)! [[#78](https://github.com/aerospike/aerospike-client-ruby/issues/78)]
|
174
|
+
|
175
|
+
- **Bug Fixes**
|
176
|
+
- Client#execute_udf_on_query should not modify the statement argument. [[#79](https://github.com/aerospike/aerospike-client-ruby/issues/79)]
|
177
|
+
- Encoding::UndefinedConversionError when reading blob data from CDT list/map bin. [[#84](https://github.com/aerospike/aerospike-client-ruby/issues/84)]
|
87
178
|
|
88
179
|
## [2.10.0] - 2019-05-10
|
89
180
|
|
90
|
-
|
91
|
-
|
181
|
+
- **New Features**
|
182
|
+
- Add support for LB discovery / seeding. Thanks to [@filiptepper](https://github.com/filiptepper)! [[#80](https://github.com/aerospike/aerospike-client-ruby/issues/80)]
|
92
183
|
|
93
184
|
## [2.9.1] - 2019-04-03
|
94
185
|
|
95
|
-
|
96
|
-
|
186
|
+
- **Bug Fixes**
|
187
|
+
|
188
|
+
- Query fails if one or more cluster nodes do not have records in the set [[#77](https://github.com/aerospike/aerospike-client-ruby/issues/77)]
|
97
189
|
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
190
|
+
- **Updates**
|
191
|
+
- Change admin message version to 2 (from 0)
|
192
|
+
- Remove unused BIN_EXISTS_ERROR (6) and BIN_NOT_FOUND (17) error codes
|
193
|
+
- Tests: Support setting user/password when running specs
|
102
194
|
|
103
195
|
## [2.9.0] - 2018-11-09
|
104
196
|
|
105
|
-
|
106
|
-
|
197
|
+
- **New Features**
|
198
|
+
|
199
|
+
- Add INFINITY and WILDCARD values for use in CDT map/list comparators. [AER-5945]
|
200
|
+
|
201
|
+
- **Bug Fixes**
|
107
202
|
|
108
|
-
|
109
|
-
* Default policies set on Client instance do not get applied [[#74](https://github.com/aerospike/aerospike-client-ruby/issues/74)]
|
203
|
+
- Default policies set on Client instance do not get applied [[#74](https://github.com/aerospike/aerospike-client-ruby/issues/74)]
|
110
204
|
|
111
|
-
|
112
|
-
|
113
|
-
|
205
|
+
- **Updates**
|
206
|
+
- _BREAKING CHANGE_: Change default for send_key write policy to false [[#73](https://github.com/aerospike/aerospike-client-ruby/issues/73)]
|
207
|
+
- Support truncate info command argument "lut=now" for servers that require it. [AER-5955]
|
114
208
|
|
115
209
|
## [2.8.0] - 2018-08-06
|
116
210
|
|
117
|
-
|
118
|
-
* Support latest CDT List/Map server-side operations: [[#69](https://github.com/aerospike/aerospike-client-ruby/pull/69)]
|
119
|
-
* Operations on Ordered Lists & Bounded Lists via new List Policy. (Requires server version v3.16.0 or later.)
|
120
|
-
* Option to invert selection criteria for certain List/Map get/remove operations. (Requires server version v3.16.0 or later.)
|
121
|
-
* List/Map index/rank relative get/remove operations. (Requires server version v4.3.0 or later.)
|
122
|
-
* Partial list/map updates using PARTIAL / NO_FAIL write flags. (Requires server version v4.3.0 or later.)
|
123
|
-
* Benchmarks: Output total TPS metrics at end of run [[#71](https://github.com/aerospike/aerospike-client-ruby/pull/71)]
|
211
|
+
- **New Features**
|
124
212
|
|
125
|
-
|
126
|
-
|
213
|
+
- Support latest CDT List/Map server-side operations: [[#69](https://github.com/aerospike/aerospike-client-ruby/pull/69)]
|
214
|
+
- Operations on Ordered Lists & Bounded Lists via new List Policy. (Requires server version v3.16.0 or later.)
|
215
|
+
- Option to invert selection criteria for certain List/Map get/remove operations. (Requires server version v3.16.0 or later.)
|
216
|
+
- List/Map index/rank relative get/remove operations. (Requires server version v4.3.0 or later.)
|
217
|
+
- Partial list/map updates using PARTIAL / NO_FAIL write flags. (Requires server version v4.3.0 or later.)
|
218
|
+
- Benchmarks: Output total TPS metrics at end of run [[#71](https://github.com/aerospike/aerospike-client-ruby/pull/71)]
|
127
219
|
|
128
|
-
|
129
|
-
|
220
|
+
- **Bug Fixes**
|
221
|
+
|
222
|
+
- Check connection status of sockets retrieved from connection pool [[#72](https://github.com/aerospike/aerospike-client-ruby/pull/72)]
|
223
|
+
|
224
|
+
- **Updates**
|
225
|
+
- Add JRuby back to CI test matrix [[#70](https://github.com/aerospike/aerospike-client-ruby/pull/70)]
|
130
226
|
|
131
227
|
## [2.7.0] - 2018-04-12
|
132
228
|
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
229
|
+
- **New Features**
|
230
|
+
- Batch Index protocol support. Thanks to [@deenbandhu-agarwal](https://github.com/deenbandhu-agarwal)! [[#61](https://github.com/aerospike/aerospike-client-ruby/pull/61)]
|
231
|
+
- Memory optimization: Avoid easy allocations. Thanks to [@wallin](https://github.com/wallin)! [[#62](https://github.com/aerospike/aerospike-client-ruby/pull/62)]
|
232
|
+
- New node removal strategy. Thanks to [@wallin](https://github.com/wallin)! [[#63](https://github.com/aerospike/aerospike-client-ruby/pull/63)]
|
233
|
+
- Support for IPv6. Requires Aerospike Enterprise Edition v3.10 or later. Thanks to [@wallin](https://github.com/wallin)! [[#65](https://github.com/aerospike/aerospike-client-ruby/pull/65)]
|
138
234
|
|
139
235
|
## [2.6.0] - 2018-03-27
|
140
236
|
|
141
|
-
|
142
|
-
|
143
|
-
|
237
|
+
- **New Features**
|
238
|
+
|
239
|
+
- Support for peers protocol for cluster discovery. Requires Aerospike server version 3.10 or later. Thanks to [@wallin](https://github.com/wallin) of [castle.io](https://castle.io/)! [[#59](https://github.com/aerospike/aerospike-client-ruby/pull/59)]
|
240
|
+
- TLS encryption support for client <-> server connections. Requires Aerospike Enterprise Edition version 3.11 or later. Thanks to [@wallin](https://github.com/wallin) of [castle.io](https://castle.io/)! [[#59](https://github.com/aerospike/aerospike-client-ruby/pull/59)]
|
144
241
|
|
145
|
-
|
146
|
-
* Fix min./max. boundary check for Integer bin values and improve performance. Thanks to [@wallin](https://github.com/wallin) of [castle.io](https://castle.io/)! [[#60](https://github.com/aerospike/aerospike-client-ruby/pull/60)]
|
242
|
+
- **Bug Fixes**
|
147
243
|
|
148
|
-
|
149
|
-
|
244
|
+
- Fix min./max. boundary check for Integer bin values and improve performance. Thanks to [@wallin](https://github.com/wallin) of [castle.io](https://castle.io/)! [[#60](https://github.com/aerospike/aerospike-client-ruby/pull/60)]
|
245
|
+
|
246
|
+
- **Updates**
|
247
|
+
- Update minimum required Ruby version to v2.3.
|
150
248
|
|
151
249
|
## [2.5.1] - 2018-01-25
|
152
250
|
|
153
|
-
|
154
|
-
|
251
|
+
- **Bug Fixes**
|
252
|
+
|
253
|
+
- Some secondary index queries fail with parameter error on Aerospike Server v3.15.1.x [#57](https://github.com/aerospike/aerospike-client-ruby/issues/57)
|
155
254
|
|
156
|
-
|
157
|
-
|
158
|
-
|
255
|
+
- **Updates**
|
256
|
+
- Added Ruby 2.5 to test matrix
|
257
|
+
- Updated documentation for Client#truncate command [CLIENT-985]
|
159
258
|
|
160
259
|
## [2.5.0] - 2017-10-10
|
161
260
|
|
162
|
-
|
163
|
-
* Support nobins flag on query operations
|
164
|
-
* Support CDT List Increment operation. Requires Aerospike server version 3.15 or later.
|
261
|
+
- **New Features**
|
165
262
|
|
166
|
-
|
167
|
-
|
168
|
-
|
263
|
+
- Support nobins flag on query operations
|
264
|
+
- Support CDT List Increment operation. Requires Aerospike server version 3.15 or later.
|
265
|
+
|
266
|
+
- **Updates**
|
267
|
+
- The deprecated Large Data Types(LDT) feature has been removed.
|
268
|
+
- Ruby 2.1 has been removed from the client's test matrix as [official support for Ruby 2.1 has ended in Apr 2017](https://www.ruby-lang.org/en/news/2017/04/01/support-of-ruby-2-1-has-ended/). Nothing has changed in the client that would break compatibility with Ruby 2.1 yet. But compatibility is not guaranteed for future client releases.
|
169
269
|
|
170
270
|
## [2.4.0] - 2017-04-06
|
171
271
|
|
172
|
-
|
173
|
-
|
174
|
-
|
272
|
+
- **New Features**
|
273
|
+
|
274
|
+
- Support ns/set truncate command [#47](https://github.com/aerospike/aerospike-client-ruby/issues/47)
|
275
|
+
- Support configurable scan socket write timeout [#46](https://github.com/aerospike/aerospike-client-ruby/issues/46)
|
175
276
|
|
176
|
-
|
177
|
-
* Fix "Digest::Base cannot be directly inherited in Ruby" [#45](https://github.com/aerospike/aerospike-client-ruby/issues/45)
|
277
|
+
- **Bug Fixes**
|
178
278
|
|
179
|
-
|
180
|
-
|
279
|
+
- Fix "Digest::Base cannot be directly inherited in Ruby" [#45](https://github.com/aerospike/aerospike-client-ruby/issues/45)
|
280
|
+
|
281
|
+
- **Updates**
|
282
|
+
- Ruby 2.0 has been removed from the client's test matrix as [official support for Ruby 2.0 has ended in Feb 2016](https://www.ruby-lang.org/en/news/2016/02/24/support-plan-of-ruby-2-0-0-and-2-1/). Nothing has changed in the client that would break compatibility with Ruby 2.0 yet. But compatibility is not guaranteed for future client releases. [#52](https://github.com/aerospike/aerospike-client-ruby/pull/52)
|
181
283
|
|
182
284
|
## [2.3.0] - 2017-01-04
|
183
285
|
|
184
|
-
|
185
|
-
|
286
|
+
- **Bug Fixes**
|
287
|
+
|
288
|
+
- Fix BytesValue used as record key. [#42](https://github.com/aerospike/aerospike-client-ruby/issues/42)
|
186
289
|
|
187
|
-
|
188
|
-
|
290
|
+
- **Changes**
|
291
|
+
- Deprecate unsupport key types - only integer, string and byte keys are supported. [#43](https://github.com/aerospike/aerospike-client-ruby/issues/43)
|
189
292
|
|
190
293
|
## [2.2.1] - 2016-11-14
|
191
294
|
|
192
|
-
|
193
|
-
* Added constants `Aerospike::TTL::*` for "special" TTL values, incl. Aerospike::TTL::DONT_UPDATE (requires Aerospike Server v3.10.1 or later)
|
295
|
+
- **New Features**
|
194
296
|
|
195
|
-
|
196
|
-
|
297
|
+
- Added constants `Aerospike::TTL::*` for "special" TTL values, incl. Aerospike::TTL::DONT_UPDATE (requires Aerospike Server v3.10.1 or later)
|
298
|
+
|
299
|
+
- **Bug Fixes**
|
300
|
+
- Fix "Add node failed: wrong number of arguments". [#41](https://github.com/aerospike/aerospike-client-ruby/issues/41)
|
197
301
|
|
198
302
|
## [2.2.0] - 2016-09-20
|
199
303
|
|
200
|
-
|
201
|
-
|
304
|
+
- **New Features**
|
305
|
+
|
306
|
+
- Support for durable delete write policy [CLIENT-768]; requires Aerospike
|
202
307
|
Server Enterprise Edition v3.10 or later.
|
203
|
-
|
308
|
+
- Support Cluster Name verification [CLIENT-776]; requires Aerospike Server v3.10 or later.
|
204
309
|
|
205
|
-
|
206
|
-
* Fix error handling in node refresh during cluster tend.
|
310
|
+
- **Bug Fixes**
|
207
311
|
|
208
|
-
|
209
|
-
|
312
|
+
- Fix error handling in node refresh during cluster tend.
|
313
|
+
|
314
|
+
- **Improvements**
|
315
|
+
|
316
|
+
- Optionally return multiple results from read operations on same record bin.
|
210
317
|
[#39](https://github.com/aerospike/aerospike-client-ruby/issues/39) Thanks
|
211
318
|
to [@zingoba](https://github.com/zingoba).
|
212
319
|
|
213
|
-
|
214
|
-
|
215
|
-
|
320
|
+
- **Documentation**
|
321
|
+
- Added note about potential issues with usage in Ruby on Rails with Phusion Passenger.
|
322
|
+
- Amend/clean up documentation of client policies.
|
216
323
|
|
217
324
|
## [2.1.1] - 2016-08-16
|
218
325
|
|
219
|
-
|
220
|
-
* Fix incorrect expiration times on records fetched via batch_get or query operations. [#38](https://github.com/aerospike/aerospike-client-ruby/issues/38)
|
326
|
+
- **Bug Fixes**
|
221
327
|
|
222
|
-
|
223
|
-
|
224
|
-
|
328
|
+
- Fix incorrect expiration times on records fetched via batch_get or query operations. [#38](https://github.com/aerospike/aerospike-client-ruby/issues/38)
|
329
|
+
|
330
|
+
- **Improvements**
|
331
|
+
- Add support for two new server error codes (23 & 24) introduced in Aerospike Server v3.9.1.
|
332
|
+
- Records returned by batch_get operation should include the full key incl. the user key part.
|
225
333
|
|
226
334
|
## [2.1.0] - 2016-07-19
|
227
335
|
|
228
|
-
|
229
|
-
|
230
|
-
|
336
|
+
- **Fixes**
|
337
|
+
|
338
|
+
- Fix a typo in the `max_retries` policy parameter name. [PR #37](https://github.com/aerospike/aerospike-client-ruby/pull/37) Thanks to [@murphyslaw](https://github.com/murphyslaw)!
|
339
|
+
- Fix license identifier in gemspec.
|
231
340
|
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
341
|
+
- **Improvements**
|
342
|
+
- Support for queries on Lists and Maps (keys & values)
|
343
|
+
- Support for creating indexes on Lists and Maps [CLIENT-685]
|
344
|
+
- Support GeoJSON values in Lists and Maps
|
236
345
|
|
237
346
|
## [2.0.0] - 2016-05-27
|
238
347
|
|
239
|
-
|
240
|
-
* Incompatible integer key digests: digests for integer keys computed by v2 and v1 are different; the Aerospike server uses the key digest to retrieve records. This will impact your ability to read records with integer keys that were created by a v1 client version.
|
241
|
-
* Backward incompatible changes to the `Aerospike::Client.new` initializer.
|
242
|
-
* The `Aerospike::Client.new_many` initializer has been removed; use `Aerospike::Client.new` instead.
|
243
|
-
* Drop support for Ruby 1.9.3; requires Ruby 2.0 or later.
|
348
|
+
- **Breaking Changes** - Please refer to detailed list of [API changes](https://www.aerospike.com/docs/client/ruby/usage/incompatible.html#version-2-0-0) for further details.
|
244
349
|
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
350
|
+
- Incompatible integer key digests: digests for integer keys computed by v2 and v1 are different; the Aerospike server uses the key digest to retrieve records. This will impact your ability to read records with integer keys that were created by a v1 client version.
|
351
|
+
- Backward incompatible changes to the `Aerospike::Client.new` initializer.
|
352
|
+
- The `Aerospike::Client.new_many` initializer has been removed; use `Aerospike::Client.new` instead.
|
353
|
+
- Drop support for Ruby 1.9.3; requires Ruby 2.0 or later.
|
249
354
|
|
250
|
-
|
251
|
-
|
252
|
-
|
355
|
+
- **Improvements**
|
356
|
+
|
357
|
+
- Add support for List and Map operations on List/Map Complex Data Types (CDT); requires Aerospike Server version 3.9 or later. [CLIENT-559]
|
358
|
+
- Read Aerospike server address from AEROSPIKE_HOSTS env variable if not specified explicity in client constructor.
|
359
|
+
- Add 2.3.1 to supported Ruby versions on Travis-CI.
|
360
|
+
|
361
|
+
- **Fixes**
|
362
|
+
- Fix digest creation for integer keys. [PR #34](https://github.com/aerospike/aerospike-client-ruby/pull/34). Thanks to [@murphyslaw](https://github.com/murphyslaw)!
|
363
|
+
- Prevent "value must be enumerable" error when client cannot connect to cluster. [#35](https://github.com/aerospike/aerospike-client-ruby/issues/35). Thanks to [@rohanthewiz](https://github.com/rohanthewiz)!
|
253
364
|
|
254
365
|
## [1.0.12] - 2016-02-11
|
255
366
|
|
256
|
-
|
367
|
+
- **Fixes**:
|
257
368
|
|
258
|
-
|
369
|
+
- Fixed syntax error in Client when raising exception for invalid bin key;
|
259
370
|
thanks to [Ole Riesenberg](https://github.com/oleriesenberg) for the fix.
|
260
371
|
[aerospike/aerospike-client-ruby#31]
|
261
|
-
|
372
|
+
- Use UTF-8 as default encoding when writing/reading Strings from record
|
262
373
|
bins; thanks to [fs-wu](https://github.com/fs-wu) for finding the issue and
|
263
374
|
reporting it. [aerospike/aerospike-client-ruby#33]
|
264
375
|
|
265
376
|
## [1.0.11] - 2015-12-04
|
266
377
|
|
267
|
-
|
378
|
+
Major feature and bug fix release.
|
268
379
|
|
269
|
-
|
380
|
+
- **Fixes**:
|
270
381
|
|
271
|
-
|
382
|
+
- Fix `ClientPolicy` to actually accept `fail_if_not_connected` parameter from constructor opts. PR #29, thanks to [Nick Recobra](https://github.com/oruen)
|
272
383
|
|
273
|
-
|
384
|
+
- Fix record initialization issue. PR #28, thanks to [jzhua](https://github.com/jzhua)
|
274
385
|
|
275
|
-
|
386
|
+
- Consume the rest of the stream when scan/query is finished.
|
276
387
|
|
277
|
-
|
388
|
+
- **Improvements**:
|
278
389
|
|
279
|
-
|
280
|
-
|
390
|
+
- Support for double precision floating point data type in record bins.
|
391
|
+
Requires server version 3.6.0 or later. [CLIENT-599]
|
281
392
|
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
393
|
+
- Support for geospatial data in record bins using GeoJSON format; support
|
394
|
+
for querying geospatial indexes using points-within-region and
|
395
|
+
region-contains-point filters. Requires server version 3.7.0 or later.
|
396
|
+
[CLIENT-594]
|
286
397
|
|
287
|
-
|
288
|
-
|
398
|
+
- Tend interval is now configurable via the client policy. Default is 1
|
399
|
+
second as before.
|
289
400
|
|
290
|
-
|
401
|
+
- Only logs tend messages when the number of cluster nodes have changed.
|
291
402
|
|
292
|
-
|
403
|
+
- Scan and Query termination has been fixed.
|
293
404
|
|
294
405
|
## [1.0.10] - 2015-09-22
|
295
406
|
|
296
|
-
|
407
|
+
Major fix release.
|
297
408
|
|
298
|
-
|
409
|
+
- **Fixes**:
|
299
410
|
|
300
|
-
|
411
|
+
- Fixes `find_node_in_partition_map` logic.
|
301
412
|
|
302
|
-
|
413
|
+
- Fixes `Node.Refresh` logic.
|
303
414
|
|
304
|
-
|
415
|
+
- Fixes an issue with dead connections that would cause an infinite loop.
|
305
416
|
|
306
417
|
## [1.0.9] - 2015-08-11
|
307
418
|
|
308
|
-
|
419
|
+
Minor fix release.
|
309
420
|
|
310
|
-
|
421
|
+
- **Fixes**:
|
311
422
|
|
312
|
-
|
423
|
+
- Sends the original key value to the server for all relevant commands, including `operate` and `execute_udf`
|
313
424
|
|
314
425
|
## [1.0.8] - 2015-07-23
|
315
426
|
|
316
|
-
|
427
|
+
Minor fix release.
|
317
428
|
|
318
|
-
|
429
|
+
- **Improvements**:
|
319
430
|
|
320
|
-
|
431
|
+
- Adds 'Filter.to_s'. Thanks to [Ángel M](https://github.com/Angelmmiguel)
|
321
432
|
|
322
|
-
|
433
|
+
- **Fixes**:
|
323
434
|
|
324
|
-
|
435
|
+
- Fixes an issue in write policy that would use an undefined variable if `:send_key` isn't `nil`.
|
325
436
|
|
326
|
-
|
437
|
+
- Fixes an issue in cluster.closed logic.
|
327
438
|
|
328
|
-
|
439
|
+
- Fixes an issue with including the `statement.rb` in the manifest. Thanks to [Ángel M](https://github.com/Angelmmiguel)
|
329
440
|
|
330
441
|
## [1.0.7] - 2015-05-15
|
331
442
|
|
332
|
-
|
443
|
+
Minor fixes.
|
333
444
|
|
334
|
-
|
445
|
+
NOTICE: All LDTs on server other than LLIST have been deprecated, and will be removed in the future. As Such, all API regarding those features are considered deprecated and will be removed in tandem.
|
335
446
|
|
336
|
-
|
447
|
+
- **Improvements**:
|
337
448
|
|
338
|
-
|
449
|
+
- Removed workaround in `BatchGet`. Bins are filtered on server now.
|
339
450
|
|
340
|
-
|
451
|
+
- Added New Error Codes. Fixes Issues #17 and #18
|
341
452
|
|
342
|
-
|
453
|
+
- Node validator won't lookup hostsif an IP is passed as a seed to it.
|
343
454
|
|
344
|
-
|
455
|
+
- ** Other Changes **
|
345
456
|
|
346
|
-
|
457
|
+
- Removed deprecated `ReplaceRoles()` method.
|
347
458
|
|
348
|
-
|
459
|
+
- Removed deprecated `SetCapacity()` and `GetCapacity()` methods for LDTs.
|
349
460
|
|
350
461
|
## [1.0.6] - 2015-04-02
|
351
462
|
|
352
|
-
|
463
|
+
Minor fixes.
|
353
464
|
|
354
|
-
|
465
|
+
- **New Features**:
|
355
466
|
|
356
|
-
|
467
|
+
- Fixed running a stream query without parameters to the function.
|
357
468
|
|
358
469
|
## [1.0.5] - 2015-03-25
|
359
470
|
|
360
|
-
|
471
|
+
Minor improvements.
|
361
472
|
|
362
|
-
|
473
|
+
- **New Features**:
|
363
474
|
|
364
|
-
|
475
|
+
- Added `:execute_udf_on_query` method to `Aerospike::Client`
|
365
476
|
|
366
477
|
## [1.0.4] - 2015-03-24
|
367
478
|
|
368
|
-
|
479
|
+
Hot fix.
|
369
480
|
|
370
|
-
|
481
|
+
- **Fixes**:
|
371
482
|
|
372
|
-
|
483
|
+
- Close a socket if connection raises an exception to avoid leaking the file descriptor.
|
373
484
|
|
374
485
|
## [1.0.3] - 2015-03-24
|
375
486
|
|
376
|
-
|
377
|
-
|
378
|
-
* **New Features**:
|
487
|
+
Minor fixes and improvements.
|
379
488
|
|
380
|
-
|
489
|
+
- **New Features**:
|
381
490
|
|
382
|
-
|
491
|
+
- Symbols are now accepted as key values. Keep in mind that symbols are converted to string automatically, and type information is lost.
|
383
492
|
|
384
|
-
|
493
|
+
- **Fixes**:
|
385
494
|
|
495
|
+
- Wait for a good connection on `socket.connect_nonblock` to prevent infinite loops on read/write operations.
|
386
496
|
|
387
497
|
## [1.0.2] - 2015-03-14
|
388
498
|
|
389
|
-
|
499
|
+
Minor improvements.
|
390
500
|
|
391
|
-
|
501
|
+
- **New Features**:
|
392
502
|
|
393
|
-
|
503
|
+
- Added `:new_many` method to `Aerospike::Client`
|
394
504
|
|
395
505
|
## [1.0.1] - 2015-01-28
|
396
506
|
|
397
|
-
|
507
|
+
Hot fix.
|
398
508
|
|
399
|
-
|
509
|
+
- **Fixes**:
|
400
510
|
|
401
|
-
|
511
|
+
- Added `bcrypt` to the gem dependencies.
|
402
512
|
|
403
513
|
## [1.0.0] - 2015-01-26
|
404
514
|
|
405
|
-
|
515
|
+
Major release. With this release, Ruby client graduates to version 1.
|
406
516
|
|
407
|
-
|
517
|
+
- **Breaking Changes**:
|
408
518
|
|
409
|
-
|
410
|
-
|
519
|
+
- All `policy` initialize signatures have changed. Using policies was not documented, so it shouldn't affect most code. It will however, break any code initializing policies.
|
520
|
+
- Removed `Record.dups` and `GenerationPolicy::DUPLICATE`
|
411
521
|
|
412
|
-
|
522
|
+
- **New Features**:
|
413
523
|
|
414
|
-
|
524
|
+
- Added Security Features: Please consult [Security Docs](https://www.aerospike.com/docs/guide/security.html) on Aerospike website.
|
415
525
|
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
526
|
+
- `ClientPolicy.User`, `ClientPolicy.Password`
|
527
|
+
- `Client.CreateUser()`, `Client.DropUser()`, `Client.ChangePassword()`
|
528
|
+
- `Client.GrantRoles()`, `Client.RevokeRoles()`, `Client.ReplaceRoles()`
|
529
|
+
- `Client.QueryUser()`, `Client.QueryUsers`
|
420
530
|
|
421
|
-
|
531
|
+
- **Fixes**:
|
422
532
|
|
423
|
-
|
533
|
+
- fixed size returned from `BytesValue.write`
|
424
534
|
|
425
535
|
## [0.1.6] - 2014-12-28
|
426
536
|
|
427
|
-
|
537
|
+
Minor features added, minor fixes and improvements.
|
428
538
|
|
429
|
-
|
539
|
+
- **New Features**:
|
430
540
|
|
431
|
-
|
432
|
-
|
541
|
+
- Added `Policy.consistency_level`
|
542
|
+
- Added `WritePolicy.commit_level`
|
433
543
|
|
434
|
-
|
544
|
+
- **Fixes**
|
435
545
|
|
436
|
-
|
437
|
-
|
546
|
+
- Fixed setting timeout on connection
|
547
|
+
- Fixed exception handling typo for Connection#write
|
438
548
|
|
439
549
|
## [0.1.5] - 2014-12-08
|
440
550
|
|
441
|
-
|
551
|
+
Major features added, minor fixes and improvements.
|
442
552
|
|
443
|
-
|
553
|
+
- **New Features**:
|
444
554
|
|
445
|
-
|
446
|
-
|
555
|
+
- Added `Client.scan_node`, `Client.scan_all`
|
556
|
+
- Added `Client.query`
|
447
557
|
|
448
|
-
|
558
|
+
- **Fixes**
|
449
559
|
|
450
|
-
|
560
|
+
- Fixed getting back results only for specified bin names.
|
451
561
|
|
452
562
|
## [0.1.3] - 2014-10-27
|
453
563
|
|
454
|
-
|
564
|
+
Minor fix.
|
455
565
|
|
456
|
-
|
566
|
+
- **Changes**:
|
457
567
|
|
458
|
-
|
568
|
+
- Fixed LDT bin and module name packing.
|
459
569
|
|
460
570
|
## [0.1.2] - 2014-10-25
|
461
571
|
|
462
|
-
|
572
|
+
Minor fix.
|
463
573
|
|
464
|
-
|
574
|
+
- **Changes**:
|
465
575
|
|
466
|
-
|
576
|
+
- Fixed String unpacking for single byte strings.
|
467
577
|
|
468
578
|
## [0.1.1] - 2014-10-25
|
469
579
|
|
470
|
-
|
580
|
+
Minor fixes.
|
471
581
|
|
472
|
-
|
582
|
+
- **Changes**:
|
473
583
|
|
474
|
-
|
475
|
-
|
584
|
+
- Fixed String packing header in Hash and Array.
|
585
|
+
- #find on LDTs returns `nil` instad of raising an exception if the item is not found.
|
476
586
|
|
477
587
|
## [0.1.0] - 2014-10-14
|
478
588
|
|
479
|
-
|
589
|
+
- Initial Release.
|