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