aerospike 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +0 -0
  3. data/LICENSE +203 -0
  4. data/README.md +123 -0
  5. data/lib/aerospike.rb +69 -0
  6. data/lib/aerospike/aerospike_exception.rb +111 -0
  7. data/lib/aerospike/bin.rb +46 -0
  8. data/lib/aerospike/client.rb +649 -0
  9. data/lib/aerospike/cluster/cluster.rb +537 -0
  10. data/lib/aerospike/cluster/connection.rb +113 -0
  11. data/lib/aerospike/cluster/node.rb +248 -0
  12. data/lib/aerospike/cluster/node_validator.rb +85 -0
  13. data/lib/aerospike/cluster/partition.rb +54 -0
  14. data/lib/aerospike/cluster/partition_tokenizer_new.rb +128 -0
  15. data/lib/aerospike/cluster/partition_tokenizer_old.rb +135 -0
  16. data/lib/aerospike/command/batch_command.rb +120 -0
  17. data/lib/aerospike/command/batch_command_exists.rb +93 -0
  18. data/lib/aerospike/command/batch_command_get.rb +150 -0
  19. data/lib/aerospike/command/batch_item.rb +69 -0
  20. data/lib/aerospike/command/batch_node.rb +82 -0
  21. data/lib/aerospike/command/command.rb +680 -0
  22. data/lib/aerospike/command/delete_command.rb +57 -0
  23. data/lib/aerospike/command/execute_command.rb +42 -0
  24. data/lib/aerospike/command/exists_command.rb +57 -0
  25. data/lib/aerospike/command/field_type.rb +44 -0
  26. data/lib/aerospike/command/operate_command.rb +37 -0
  27. data/lib/aerospike/command/read_command.rb +174 -0
  28. data/lib/aerospike/command/read_header_command.rb +63 -0
  29. data/lib/aerospike/command/single_command.rb +60 -0
  30. data/lib/aerospike/command/touch_command.rb +50 -0
  31. data/lib/aerospike/command/write_command.rb +60 -0
  32. data/lib/aerospike/host.rb +43 -0
  33. data/lib/aerospike/info.rb +96 -0
  34. data/lib/aerospike/key.rb +99 -0
  35. data/lib/aerospike/language.rb +25 -0
  36. data/lib/aerospike/ldt/large.rb +69 -0
  37. data/lib/aerospike/ldt/large_list.rb +100 -0
  38. data/lib/aerospike/ldt/large_map.rb +82 -0
  39. data/lib/aerospike/ldt/large_set.rb +78 -0
  40. data/lib/aerospike/ldt/large_stack.rb +72 -0
  41. data/lib/aerospike/loggable.rb +55 -0
  42. data/lib/aerospike/operation.rb +70 -0
  43. data/lib/aerospike/policy/client_policy.rb +37 -0
  44. data/lib/aerospike/policy/generation_policy.rb +37 -0
  45. data/lib/aerospike/policy/policy.rb +54 -0
  46. data/lib/aerospike/policy/priority.rb +34 -0
  47. data/lib/aerospike/policy/record_exists_action.rb +45 -0
  48. data/lib/aerospike/policy/write_policy.rb +61 -0
  49. data/lib/aerospike/record.rb +42 -0
  50. data/lib/aerospike/result_code.rb +353 -0
  51. data/lib/aerospike/task/index_task.rb +59 -0
  52. data/lib/aerospike/task/task.rb +71 -0
  53. data/lib/aerospike/task/udf_register_task.rb +55 -0
  54. data/lib/aerospike/task/udf_remove_task.rb +55 -0
  55. data/lib/aerospike/udf.rb +24 -0
  56. data/lib/aerospike/utils/buffer.rb +139 -0
  57. data/lib/aerospike/utils/epoc.rb +28 -0
  58. data/lib/aerospike/utils/pool.rb +65 -0
  59. data/lib/aerospike/value/particle_type.rb +45 -0
  60. data/lib/aerospike/value/value.rb +380 -0
  61. data/lib/aerospike/version.rb +4 -0
  62. metadata +132 -0
@@ -0,0 +1,37 @@
1
+ # encoding: utf-8
2
+ # Copyright 2014 Aerospike, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http:#www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ module Aerospike
17
+
18
+ # Container object for client policy command.
19
+ class ClientPolicy
20
+
21
+ attr_accessor :timeout, :connection_queue_size, :fail_if_not_connected
22
+
23
+ def initialize(timeout=nil, connection_queue_size=nil, fail_if_not_connected=nil)
24
+ # Initial host connection timeout in seconds. The timeout when opening a connection
25
+ # to the server host for the first time.
26
+ @timeout = timeout || 1.0 # 1 second
27
+
28
+ # Size of the Connection Queue cache.
29
+ @connection_queue_size = connection_queue_size || 64
30
+
31
+ # Throw exception if host connection fails during add_host.
32
+ @fail_if_not_connected = fail_if_not_connected || true
33
+ end
34
+
35
+ end # class
36
+
37
+ end # module
@@ -0,0 +1,37 @@
1
+ # encoding: utf-8
2
+ # Copyright 2014 Aerospike, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http:#www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ module Aerospike
17
+
18
+ module GenerationPolicy
19
+
20
+ # Do not use record generation to restrict writes.
21
+ NONE = 0
22
+
23
+ # Update/delete record if expected generation is equal to server generation. Otherwise, fail.
24
+ EXPECT_GEN_EQUAL = 1
25
+
26
+ # Update/delete record if expected generation greater than the server generation. Otherwise, fail.
27
+ # This is useful for restore after backup.
28
+ EXPECT_GEN_GT = 2
29
+
30
+ # Create duplicate record if expected generation is not equal to server generation.
31
+ # Duplicates are only created when the server configuration option "allow-versions"
32
+ # is true (default is false).
33
+ DUPLICATE = 3
34
+
35
+ end # module
36
+
37
+ end # module
@@ -0,0 +1,54 @@
1
+ # encoding: utf-8
2
+ # Copyright 2014 Aerospike, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http:#www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ require 'aerospike/policy/priority'
17
+
18
+
19
+ module Aerospike
20
+
21
+ # Container object for client policy command.
22
+ class Policy
23
+
24
+ attr_accessor :priority, :timeout, :max_retries, :sleep_between_retries
25
+
26
+ def initialize(priority=nil, timeout=nil, max_retiries=nil, sleep_between_retries=nil)
27
+ # Container object for transaction policy attributes used in all database
28
+ # operation calls.
29
+
30
+ # Priority of request relative to other transactions.
31
+ # Currently, only used for scans.
32
+ @priority = priority || Priority::DEFAULT
33
+
34
+ # Transaction timeout.
35
+ # This timeout is used to set the socket timeout and is also sent to the
36
+ # server along with the transaction in the wire protocol.
37
+ # Default to no timeout (0).
38
+ @timeout = timeout || 0
39
+
40
+ # Maximum number of retries before aborting the current transaction.
41
+ # A retry is attempted when there is a network error other than timeout.
42
+ # If max_retries is exceeded, the abort will occur even if the timeout
43
+ # has not yet been exceeded.
44
+ @max_retries = max_retiries || 2
45
+
46
+ # Duration to sleep between retries if a transaction fails and the
47
+ # timeout was not exceeded. Enter zero to skip sleep.
48
+ @sleep_between_retries = sleep_between_retries || 0.5
49
+ end
50
+
51
+
52
+ end # class
53
+
54
+ end # module
@@ -0,0 +1,34 @@
1
+ # encoding: utf-8
2
+ # Copyright 2014 Aerospike, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http:#www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ module Aerospike
17
+
18
+ module Priority
19
+
20
+ # The server defines the priority.
21
+ DEFAULT = 0
22
+
23
+ # Run the database operation in a background thread.
24
+ LOW = 1
25
+
26
+ # Run the database operation at medium priority.
27
+ MEDIUM = 2
28
+
29
+ # Run the database operation at the highest priority.
30
+ HIGH = 3
31
+
32
+ end # module
33
+
34
+ end # module
@@ -0,0 +1,45 @@
1
+ # encoding: utf-8
2
+ # Copyright 2014 Aerospike, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http:#www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ module Aerospike
17
+
18
+ module RecordExistsAction
19
+
20
+ # Create or update record.
21
+ # Merge write command bins with existing bins.
22
+ UPDATE = 0
23
+
24
+ # Update record only. Fail if record does not exist.
25
+ # Merge write command bins with existing bins.
26
+ UPDATE_ONLY = 1
27
+
28
+ # Create or replace record.
29
+ # Delete existing bins not referenced by write command bins.
30
+ # Supported by Aerospike 2 server versions >= 2.7.5 and
31
+ # Aerospike 3 server versions >= 3.1.6.
32
+ REPLACE = 2
33
+
34
+ # Replace record only. Fail if record does not exist.
35
+ # Delete existing bins not referenced by write command bins.
36
+ # Supported by Aerospike 2 server versions >= 2.7.5 and
37
+ # Aerospike 3 server versions >= 3.1.6.
38
+ REPLACE_ONLY = 3
39
+
40
+ # Create only. Fail if record exists.
41
+ CREATE_ONLY = 4
42
+
43
+ end # module
44
+
45
+ end # module
@@ -0,0 +1,61 @@
1
+ # encoding: utf-8
2
+ # Copyright 2014 Aerospike, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http:#www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ require 'aerospike/policy/policy'
17
+ require 'aerospike/policy/generation_policy'
18
+ require 'aerospike/policy/record_exists_action'
19
+
20
+ module Aerospike
21
+
22
+ # Container object for client policy command.
23
+ class WritePolicy < Policy
24
+
25
+ attr_accessor :record_exists_action, :generation_policy,
26
+ :generation, :expiration, :send_key
27
+
28
+ def initialize(record_exists_action=nil, gen_policy=nil, generation=nil, expiration=nil, send_key=nil)
29
+ super()
30
+
31
+ # Qualify how to handle writes where the record already exists.
32
+ @record_exists_action = record_exists_action || RecordExistsAction::UPDATE
33
+
34
+ # Qualify how to handle record writes based on record generation. The default (NONE)
35
+ # indicates that the generation is not used to restrict writes.
36
+ @generation_policy = gen_policy || GenerationPolicy::NONE
37
+
38
+ # Expected generation. Generation is the number of times a record has been modified
39
+ # (including creation) on the server. If a write operation is creating a record,
40
+ # the expected generation would be 0
41
+ @generation = generation || 0
42
+
43
+ # Record expiration. Also known as ttl (time to live).
44
+ # Seconds record will live before being removed by the server.
45
+ # Expiration values:
46
+ # -1: Never expire for Aerospike 2 server versions >= 2.7.2 and Aerospike 3 server
47
+ # versions >= 3.1.4. Do not use -1 for older servers.
48
+ # 0: Default to namespace configuration variable "default-ttl" on the server.
49
+ # > 0: Actual expiration in seconds.
50
+ @expiration = expiration || 0
51
+
52
+ # Send user defined key in addition to hash digest on a record put.
53
+ # The default is to send the user defined key.
54
+ @send_key = send_key.nil? ? true : send_key
55
+
56
+ self
57
+ end
58
+
59
+ end # class
60
+
61
+ end # module
@@ -0,0 +1,42 @@
1
+ # encoding: utf-8
2
+ # Copyright 2014 Aerospike, Inc.
3
+ #
4
+ # Portions may be licensed to Aerospike, Inc. under one or more contributor
5
+ # license agreements.
6
+ #
7
+ # Licensed under the Apache License, Version 2.0 (the "License"); you may not
8
+ # use this file except in compliance with the License. You may obtain a copy of
9
+ # the License at http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13
+ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14
+ # License for the specific language governing permissions and limitations under
15
+ # the License.
16
+
17
+ module Aerospike
18
+
19
+ private
20
+
21
+ class Record
22
+
23
+ attr_reader :key, :bins, :generation, :expiration, :node, :dups
24
+
25
+ def initialize(node, rec_key, rec_bins, dups, rec_gen, rec_exp)
26
+ @key = rec_key
27
+ @bins = rec_bins
28
+ @generation = rec_gen
29
+ @expiration = rec_exp
30
+ @node = node
31
+ @dups = dups
32
+ end
33
+
34
+ def to_s
35
+ 'key: `' + key.to_s + '` ' +
36
+ 'bins: `' + bins.to_s + '` ' +
37
+ 'generation: `' + generation.to_s + '` ' +
38
+ 'expiration: `' + expiration.to_s + '` '
39
+ end
40
+
41
+ end
42
+ end
@@ -0,0 +1,353 @@
1
+ # encoding: utf-8
2
+ # Copyright 2014 Aerospike, Inc.
3
+ #
4
+ # Portions may be licensed to Aerospike, Inc. under one or more contributor
5
+ # license agreements.
6
+ #
7
+ # Licensed under the Apache License, Version 2.0 (the "License") you may not
8
+ # use this file except in compliance with the License. You may obtain a copy of
9
+ # the License at http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13
+ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14
+ # License for the specific language governing permissions and limitations under
15
+ # the License.
16
+
17
+ module Aerospike
18
+
19
+ module ResultCode
20
+
21
+ attr_reader :code
22
+
23
+ # Asynchronous max concurrent database commands have been exceeded and therefore rejected.
24
+ COMMAND_REJECTED = -6
25
+
26
+ # Query was terminated by user.
27
+ QUERY_TERMINATED = -5
28
+
29
+ # Scan was terminated by user.
30
+ SCAN_TERMINATED = -4
31
+
32
+ # Chosen node is not currently active.
33
+ INVALID_NODE_ERROR = -3
34
+
35
+ # Client parse error.
36
+
37
+ PARSE_ERROR = -2
38
+
39
+ # Client serialization error.
40
+ SERIALIZE_ERROR = -1
41
+
42
+ # Operation was successful.
43
+ OK = 0
44
+
45
+ # Unknown server failure.
46
+ SERVER_ERROR = 1
47
+
48
+ # On retrieving, touching or replacing a record that doesn't exist.
49
+ KEY_NOT_FOUND_ERROR = 2
50
+
51
+ # On modifying a record with unexpected generation.
52
+ GENERATION_ERROR = 3
53
+
54
+ # Bad parameter(s) were passed in database operation call.
55
+ PARAMETER_ERROR = 4
56
+
57
+ # On create-only (write unique) operations on a record that already
58
+ # exists.
59
+ KEY_EXISTS_ERROR = 5
60
+
61
+ # On create-only (write unique) operations on a bin that already
62
+ # exists.
63
+ BIN_EXISTS_ERROR = 6
64
+
65
+ # Expected cluster ID was not received.
66
+ CLUSTER_KEY_MISMATCH = 7
67
+
68
+ # Server has run out of memory.
69
+ SERVER_MEM_ERROR = 8
70
+
71
+ # Client or server has timed out.
72
+ TIMEOUT = 9
73
+
74
+ # XDS product is not available.
75
+ NO_XDS = 10
76
+
77
+ # Server is not accepting requests.
78
+ SERVER_NOT_AVAILABLE = 11
79
+
80
+ # Operation is not supported with configured bin type (single-bin or
81
+ # multi-bin).
82
+ BIN_TYPE_ERROR = 12
83
+
84
+ # Record size exceeds limit.
85
+ RECORD_TOO_BIG = 13
86
+
87
+ # Too many concurrent operations on the same record.
88
+ KEY_BUSY = 14
89
+
90
+ # Scan aborted by server.
91
+ SCAN_ABORT = 15
92
+
93
+ # Unsupported Server Feature (e.g. Scan + UDF)
94
+ UNSUPPORTED_FEATURE = 16
95
+
96
+ # Specified bin name does not exist in record.
97
+ BIN_NOT_FOUND = 17
98
+
99
+ # Specified bin name does not exist in record.
100
+ DEVICE_OVERLOAD = 18
101
+
102
+ # Key type mismatch.
103
+ KEY_MISMATCH = 19
104
+
105
+ # There are no more records left for query.
106
+ QUERY_END = 50
107
+
108
+ SECURITY_NOT_SUPPORTED = 51
109
+ SECURITY_NOT_ENABLED = 52
110
+ SECURITY_SCHEME_NOT_SUPPORTED = 53
111
+
112
+ # Administration command is invalid.
113
+ INVALID_COMMAND = 54
114
+
115
+ # Administration field is invalid.
116
+ INVALID_FIELD = 55
117
+
118
+ ILLEGAL_STATE = 56
119
+
120
+
121
+ # User name is invalid.
122
+ INVALID_USER = 60
123
+
124
+
125
+ # User was previously created.
126
+ USER_ALREADY_EXISTS = 61
127
+
128
+
129
+ # Password is invalid.
130
+ INVALID_PASSWORD = 62
131
+
132
+
133
+ # Security credential is invalid.
134
+ INVALID_CREDENTIAL = 63
135
+
136
+
137
+ # Role name is invalid.
138
+ INVALID_ROLE = 70
139
+
140
+ INVALID_PRIVILEGE = 71
141
+
142
+ # User must be authentication before performing database operations.
143
+ NOT_AUTHENTICATED = 80
144
+
145
+ # User does not posses the required role to perform the database operation.
146
+ ROLE_VIOLATION = 81
147
+
148
+ # A user defined function returned an error code.
149
+ UDF_BAD_RESPONSE = 100
150
+
151
+ # Secondary index already exists.
152
+ INDEX_FOUND = 200
153
+
154
+ # Requested secondary index does not exist.
155
+ INDEX_NOTFOUND = 201
156
+
157
+ # Secondary index memory space exceeded.
158
+ INDEX_OOM = 202
159
+
160
+ # Secondary index not available.
161
+ INDEX_NOTREADABLE = 203
162
+
163
+ # Generic secondary index error.
164
+ INDEX_GENERIC = 204
165
+
166
+ # Index name maximum length exceeded.
167
+ INDEX_NAME_MAXLEN = 205
168
+
169
+ # Maximum number of indicies exceeded.
170
+ INDEX_MAXCOUNT = 206
171
+
172
+ # Secondary index query aborted.
173
+ QUERY_ABORTED = 210
174
+
175
+ # Secondary index queue full.
176
+ QUERY_QUEUEFULL = 211
177
+
178
+ # Secondary index query timed out on server.
179
+ QUERY_TIMEOUT = 212
180
+
181
+ # Generic query error.
182
+ QUERY_GENERIC = 213
183
+
184
+ def self.message(code)
185
+ case code
186
+ when COMMAND_REJECTED
187
+ "Command rejected"
188
+
189
+ when QUERY_TERMINATED
190
+ "Query terminated"
191
+
192
+ when SCAN_TERMINATED
193
+ "Scan terminated"
194
+
195
+ when INVALID_NODE_ERROR
196
+ "Invalid node"
197
+
198
+ when PARSE_ERROR
199
+ "Parse error"
200
+
201
+ when SERIALIZE_ERROR
202
+ "Serialize error"
203
+
204
+ when OK
205
+ "ok"
206
+
207
+ when SERVER_ERROR
208
+ "Server error"
209
+
210
+ when KEY_NOT_FOUND_ERROR
211
+ "Key not found"
212
+
213
+ when GENERATION_ERROR
214
+ "Generation error"
215
+
216
+ when PARAMETER_ERROR
217
+ "Parameter error"
218
+
219
+ when KEY_EXISTS_ERROR
220
+ "Key already exists"
221
+
222
+ when BIN_EXISTS_ERROR
223
+ "Bin already exists"
224
+
225
+ when CLUSTER_KEY_MISMATCH
226
+ "Cluster key mismatch"
227
+
228
+ when SERVER_MEM_ERROR
229
+ "Server memory error"
230
+
231
+ when TIMEOUT
232
+ "Timeout"
233
+
234
+ when NO_XDS
235
+ "XDS not available"
236
+
237
+ when SERVER_NOT_AVAILABLE
238
+ "Server not available"
239
+
240
+ when BIN_TYPE_ERROR
241
+ "Bin type error"
242
+
243
+ when RECORD_TOO_BIG
244
+ "Record too big"
245
+
246
+ when KEY_BUSY
247
+ "Hot key"
248
+
249
+ when SCAN_ABORT
250
+ "Scan aborted"
251
+
252
+ when UNSUPPORTED_FEATURE
253
+ "Unsupported Server Feature"
254
+
255
+ when BIN_NOT_FOUND
256
+ "Bin not found"
257
+
258
+ when DEVICE_OVERLOAD
259
+ "Device overload"
260
+
261
+ when KEY_MISMATCH
262
+ "Key mismatch"
263
+
264
+ when QUERY_END
265
+ "Query end"
266
+
267
+ when SECURITY_NOT_SUPPORTED
268
+ "Security not supported"
269
+
270
+ when SECURITY_NOT_ENABLED
271
+ "Security not enabled"
272
+
273
+ when SECURITY_SCHEME_NOT_SUPPORTED
274
+ "Security scheme not supported"
275
+
276
+ when INVALID_COMMAND
277
+ "Invalid command"
278
+
279
+ when INVALID_FIELD
280
+ "Invalid field"
281
+
282
+ when ILLEGAL_STATE
283
+ "Illegal state"
284
+
285
+ when INVALID_USER
286
+ "Invalid user"
287
+
288
+ when USER_ALREADY_EXISTS
289
+ "User already exists"
290
+
291
+ when INVALID_PASSWORD
292
+ "Invalid password"
293
+
294
+ when INVALID_CREDENTIAL
295
+ "Invalid credential"
296
+
297
+ when INVALID_ROLE
298
+ "Invalid role"
299
+
300
+ when INVALID_PRIVILEGE
301
+ "Invalid privilege"
302
+
303
+ when NOT_AUTHENTICATED
304
+ "Not authenticated"
305
+
306
+ when ROLE_VIOLATION
307
+ "Role violation"
308
+
309
+ when UDF_BAD_RESPONSE
310
+ "UDF d error"
311
+
312
+ when INDEX_FOUND
313
+ "Index already exists"
314
+
315
+ when INDEX_NOTFOUND
316
+ "Index not found"
317
+
318
+ when INDEX_OOM
319
+ "Index out of memory"
320
+
321
+ when INDEX_NOTREADABLE
322
+ "Index not readable"
323
+
324
+ when INDEX_GENERIC
325
+ "Index error"
326
+
327
+ when INDEX_NAME_MAXLEN
328
+ "Index name max length exceeded"
329
+
330
+ when INDEX_MAXCOUNT
331
+ "Index count exceeds max"
332
+
333
+ when QUERY_ABORTED
334
+ "Query aborted"
335
+
336
+ when QUERY_QUEUEFULL
337
+ "Query queue full"
338
+
339
+ when QUERY_TIMEOUT
340
+ "Query timeout"
341
+
342
+ when QUERY_GENERIC
343
+ "Query error"
344
+
345
+ else
346
+ "ResultCode #{code} unknown in the client. Please file a github issue."
347
+ end # case
348
+
349
+ end
350
+
351
+ end # class
352
+
353
+ end # module