aerospike 3.0.0 → 4.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +35 -0
  3. data/README.md +13 -9
  4. data/lib/aerospike/batch_attr.rb +292 -0
  5. data/lib/aerospike/batch_delete.rb +48 -0
  6. data/lib/aerospike/batch_read.rb +97 -0
  7. data/lib/aerospike/batch_record.rb +83 -0
  8. data/lib/aerospike/batch_results.rb +38 -0
  9. data/lib/aerospike/batch_udf.rb +76 -0
  10. data/lib/aerospike/batch_write.rb +79 -0
  11. data/lib/aerospike/cdt/bit_operation.rb +4 -5
  12. data/lib/aerospike/cdt/map_return_type.rb +8 -0
  13. data/lib/aerospike/client.rb +37 -51
  14. data/lib/aerospike/cluster.rb +50 -46
  15. data/lib/aerospike/command/batch_index_command.rb +7 -11
  16. data/lib/aerospike/command/batch_index_node.rb +3 -4
  17. data/lib/aerospike/command/batch_operate_command.rb +151 -0
  18. data/lib/aerospike/command/batch_operate_node.rb +51 -0
  19. data/lib/aerospike/command/command.rb +125 -98
  20. data/lib/aerospike/command/single_command.rb +1 -1
  21. data/lib/aerospike/exp/exp.rb +39 -41
  22. data/lib/aerospike/exp/exp_bit.rb +24 -24
  23. data/lib/aerospike/exp/exp_hll.rb +12 -12
  24. data/lib/aerospike/exp/exp_list.rb +101 -92
  25. data/lib/aerospike/exp/exp_map.rb +116 -119
  26. data/lib/aerospike/exp/operation.rb +2 -2
  27. data/lib/aerospike/info.rb +2 -4
  28. data/lib/aerospike/node.rb +7 -3
  29. data/lib/aerospike/operation.rb +38 -0
  30. data/lib/aerospike/policy/batch_delete_policy.rb +71 -0
  31. data/lib/aerospike/policy/batch_policy.rb +53 -4
  32. data/lib/aerospike/policy/batch_read_policy.rb +55 -0
  33. data/lib/aerospike/policy/batch_udf_policy.rb +75 -0
  34. data/lib/aerospike/policy/batch_write_policy.rb +105 -0
  35. data/lib/aerospike/policy/policy.rb +20 -40
  36. data/lib/aerospike/policy/query_duration.rb +48 -0
  37. data/lib/aerospike/policy/query_policy.rb +13 -8
  38. data/lib/aerospike/query/server_command.rb +1 -0
  39. data/lib/aerospike/query/statement.rb +5 -21
  40. data/lib/aerospike/result_code.rb +7 -1
  41. data/lib/aerospike/utils/buffer.rb +15 -15
  42. data/lib/aerospike/version.rb +1 -1
  43. data/lib/aerospike.rb +14 -12
  44. metadata +17 -14
  45. data/lib/aerospike/command/batch_direct_command.rb +0 -105
  46. data/lib/aerospike/command/batch_direct_exists_command.rb +0 -51
  47. data/lib/aerospike/command/batch_direct_node.rb +0 -40
  48. data/lib/aerospike/query/pred_exp/and_or.rb +0 -32
  49. data/lib/aerospike/query/pred_exp/geo_json_value.rb +0 -41
  50. data/lib/aerospike/query/pred_exp/integer_value.rb +0 -32
  51. data/lib/aerospike/query/pred_exp/op.rb +0 -27
  52. data/lib/aerospike/query/pred_exp/regex.rb +0 -32
  53. data/lib/aerospike/query/pred_exp/regex_flags.rb +0 -23
  54. data/lib/aerospike/query/pred_exp/string_value.rb +0 -29
  55. data/lib/aerospike/query/pred_exp.rb +0 -192
@@ -25,7 +25,7 @@ module Aerospike
25
25
  # Buffer class to ease the work around
26
26
  class Buffer #:nodoc:
27
27
  @@buf_pool = Pool.new
28
- @@buf_pool.create_proc = Proc.new { Buffer.new }
28
+ @@buf_pool.create_proc = proc { Buffer.new }
29
29
 
30
30
  attr_accessor :buf
31
31
 
@@ -43,7 +43,7 @@ module Aerospike
43
43
  MAX_BUFFER_SIZE = 10 * 1024 * 1024
44
44
 
45
45
  def initialize(size = DEFAULT_BUFFER_SIZE, buf = nil)
46
- @buf = (buf ? buf : ("%0#{size}d" % 0))
46
+ @buf = buf || format("%0#{size}d", 0)
47
47
  @buf.force_encoding("binary")
48
48
  @slice_end = @buf.bytesize
49
49
  end
@@ -60,7 +60,7 @@ module Aerospike
60
60
  @buf.bytesize
61
61
  end
62
62
 
63
- alias_method :length, :size
63
+ alias length size
64
64
 
65
65
  def eat!(n)
66
66
  @buf.replace(@buf[n..-1])
@@ -74,7 +74,7 @@ module Aerospike
74
74
  end
75
75
 
76
76
  if @buf.bytesize < length
77
- @buf.concat("%0#{length - @buf.bytesize}d" % 0)
77
+ @buf.concat(format("%0#{length - @buf.bytesize}d", 0))
78
78
  end
79
79
  @slice_end = length
80
80
  end
@@ -144,37 +144,37 @@ module Aerospike
144
144
 
145
145
  def read_int16(offset)
146
146
  vals = @buf[offset..offset + 1]
147
- vals.unpack(INT16)[0]
147
+ vals.unpack1(INT16)
148
148
  end
149
149
 
150
150
  def read_uint16(offset)
151
151
  vals = @buf[offset..offset + 1]
152
- vals.unpack(UINT16)[0]
152
+ vals.unpack1(UINT16)
153
153
  end
154
154
 
155
155
  def read_int32(offset)
156
156
  vals = @buf[offset..offset + 3]
157
- vals.unpack(INT32)[0]
157
+ vals.unpack1(INT32)
158
158
  end
159
159
 
160
160
  def read_uint32(offset)
161
161
  vals = @buf[offset..offset + 3]
162
- vals.unpack(UINT32)[0]
162
+ vals.unpack1(UINT32)
163
163
  end
164
164
 
165
165
  def read_int64(offset)
166
166
  vals = @buf[offset..offset + 7]
167
- vals.unpack(INT64)[0]
167
+ vals.unpack1(INT64)
168
168
  end
169
169
 
170
170
  def read_uint64_little_endian(offset)
171
171
  vals = @buf[offset..offset + 7]
172
- vals.unpack(UINT64LE)[0]
172
+ vals.unpack1(UINT64LE)
173
173
  end
174
174
 
175
175
  def read_uint64(offset)
176
176
  vals = @buf[offset..offset + 7]
177
- vals.unpack(UINT64)[0]
177
+ vals.unpack1(UINT64)
178
178
  end
179
179
 
180
180
  def read_var_int64(offset, len)
@@ -190,7 +190,7 @@ module Aerospike
190
190
 
191
191
  def read_double(offset)
192
192
  vals = @buf[offset..offset + 7]
193
- vals.unpack(DOUBLE)[0]
193
+ vals.unpack1(DOUBLE)
194
194
  end
195
195
 
196
196
  def read_bool(offset, length)
@@ -219,13 +219,13 @@ module Aerospike
219
219
  @buf.bytes[start...finish].each do |c|
220
220
  if counter >= start
221
221
  print "%02x " % c
222
- ascii << (c.between?(32, 126) ? c : ?.)
223
- print " " if ascii.length == (width / 2 + 1)
222
+ ascii << (c.between?(32, 126) ? c : '.')
223
+ print " " if ascii.length == ((width / 2) + 1)
224
224
  if ascii.length > width
225
225
  ascii << "|"
226
226
  puts ascii
227
227
  ascii = "|"
228
- print "%08x " % (counter + 1)
228
+ print format("%08x ", (counter + 1))
229
229
  end
230
230
  end
231
231
  counter += 1
@@ -1,4 +1,4 @@
1
1
  # encoding: utf-8
2
2
  module Aerospike
3
- VERSION = "3.0.0"
3
+ VERSION = "4.1.0"
4
4
  end
data/lib/aerospike.rb CHANGED
@@ -43,8 +43,8 @@ require "aerospike/version"
43
43
  require "aerospike/value/particle_type"
44
44
  require "aerospike/value/value"
45
45
  require "aerospike/command/single_command"
46
- require "aerospike/command/batch_direct_node"
47
46
  require "aerospike/command/batch_index_node"
47
+ require "aerospike/command/batch_operate_node"
48
48
  require "aerospike/command/field_type"
49
49
  require "aerospike/command/command"
50
50
  require "aerospike/command/execute_command"
@@ -53,9 +53,8 @@ require "aerospike/command/batch_item"
53
53
  require "aerospike/command/operate_command"
54
54
  require "aerospike/command/exists_command"
55
55
  require "aerospike/command/multi_command"
56
- require "aerospike/command/batch_direct_command"
57
- require "aerospike/command/batch_direct_exists_command"
58
56
  require "aerospike/command/batch_index_command"
57
+ require "aerospike/command/batch_operate_command"
59
58
  require "aerospike/command/batch_index_exists_command"
60
59
  require "aerospike/command/read_header_command"
61
60
  require "aerospike/command/touch_command"
@@ -91,12 +90,17 @@ require "aerospike/cdt/bit_policy"
91
90
  require "aerospike/geo_json"
92
91
  require "aerospike/ttl"
93
92
 
93
+ require "aerospike/policy/query_duration"
94
94
  require "aerospike/policy/client_policy"
95
95
  require "aerospike/policy/priority"
96
96
  require "aerospike/policy/record_exists_action"
97
97
  require "aerospike/policy/generation_policy"
98
98
  require "aerospike/policy/policy"
99
99
  require "aerospike/policy/batch_policy"
100
+ require "aerospike/policy/batch_delete_policy"
101
+ require "aerospike/policy/batch_read_policy"
102
+ require "aerospike/policy/batch_udf_policy"
103
+ require "aerospike/policy/batch_write_policy"
100
104
  require "aerospike/policy/write_policy"
101
105
  require "aerospike/policy/scan_policy"
102
106
  require "aerospike/policy/query_policy"
@@ -105,6 +109,13 @@ require "aerospike/policy/commit_level"
105
109
  require "aerospike/policy/admin_policy"
106
110
  require "aerospike/policy/auth_mode"
107
111
 
112
+ require "aerospike/batch_record"
113
+ require "aerospike/batch_attr"
114
+ require "aerospike/batch_read"
115
+ require "aerospike/batch_write"
116
+ require "aerospike/batch_delete"
117
+ require "aerospike/batch_udf"
118
+
108
119
  require "aerospike/socket/base"
109
120
  require "aerospike/socket/ssl"
110
121
  require "aerospike/socket/tcp"
@@ -160,7 +171,6 @@ require "aerospike/query/stream_command"
160
171
  require "aerospike/query/query_command"
161
172
  require "aerospike/query/scan_command"
162
173
  require "aerospike/query/statement"
163
- require "aerospike/query/pred_exp"
164
174
  require "aerospike/query/partition_tracker"
165
175
  require "aerospike/query/partition_status"
166
176
  require "aerospike/query/partition_filter"
@@ -178,14 +188,6 @@ require "aerospike/exp/exp_bit"
178
188
  require "aerospike/exp/exp_hll"
179
189
  require "aerospike/exp/operation"
180
190
 
181
- require "aerospike/query/pred_exp/and_or"
182
- require "aerospike/query/pred_exp/geo_json_value"
183
- require "aerospike/query/pred_exp/integer_value"
184
- require "aerospike/query/pred_exp/op"
185
- require "aerospike/query/pred_exp/regex"
186
- require "aerospike/query/pred_exp/regex_flags"
187
- require "aerospike/query/pred_exp/string_value"
188
-
189
191
  module Aerospike
190
192
  extend Loggable
191
193
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aerospike
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 4.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Khosrow Afroozeh
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2023-12-18 00:00:00.000000000 Z
13
+ date: 2024-10-22 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: msgpack
@@ -56,6 +56,13 @@ files:
56
56
  - lib/aerospike.rb
57
57
  - lib/aerospike/aerospike_exception.rb
58
58
  - lib/aerospike/atomic/atomic.rb
59
+ - lib/aerospike/batch_attr.rb
60
+ - lib/aerospike/batch_delete.rb
61
+ - lib/aerospike/batch_read.rb
62
+ - lib/aerospike/batch_record.rb
63
+ - lib/aerospike/batch_results.rb
64
+ - lib/aerospike/batch_udf.rb
65
+ - lib/aerospike/batch_write.rb
59
66
  - lib/aerospike/bin.rb
60
67
  - lib/aerospike/cdt/bit_operation.rb
61
68
  - lib/aerospike/cdt/bit_overflow_action.rb
@@ -87,13 +94,12 @@ files:
87
94
  - lib/aerospike/cluster/partition_parser.rb
88
95
  - lib/aerospike/cluster/rack_parser.rb
89
96
  - lib/aerospike/command/admin_command.rb
90
- - lib/aerospike/command/batch_direct_command.rb
91
- - lib/aerospike/command/batch_direct_exists_command.rb
92
- - lib/aerospike/command/batch_direct_node.rb
93
97
  - lib/aerospike/command/batch_index_command.rb
94
98
  - lib/aerospike/command/batch_index_exists_command.rb
95
99
  - lib/aerospike/command/batch_index_node.rb
96
100
  - lib/aerospike/command/batch_item.rb
101
+ - lib/aerospike/command/batch_operate_command.rb
102
+ - lib/aerospike/command/batch_operate_node.rb
97
103
  - lib/aerospike/command/command.rb
98
104
  - lib/aerospike/command/delete_command.rb
99
105
  - lib/aerospike/command/execute_command.rb
@@ -148,7 +154,11 @@ files:
148
154
  - lib/aerospike/peers/parse.rb
149
155
  - lib/aerospike/policy/admin_policy.rb
150
156
  - lib/aerospike/policy/auth_mode.rb
157
+ - lib/aerospike/policy/batch_delete_policy.rb
151
158
  - lib/aerospike/policy/batch_policy.rb
159
+ - lib/aerospike/policy/batch_read_policy.rb
160
+ - lib/aerospike/policy/batch_udf_policy.rb
161
+ - lib/aerospike/policy/batch_write_policy.rb
152
162
  - lib/aerospike/policy/client_policy.rb
153
163
  - lib/aerospike/policy/commit_level.rb
154
164
  - lib/aerospike/policy/consistency_level.rb
@@ -156,6 +166,7 @@ files:
156
166
  - lib/aerospike/policy/operate_policy.rb
157
167
  - lib/aerospike/policy/policy.rb
158
168
  - lib/aerospike/policy/priority.rb
169
+ - lib/aerospike/policy/query_duration.rb
159
170
  - lib/aerospike/policy/query_policy.rb
160
171
  - lib/aerospike/policy/record_bin_multiplicity.rb
161
172
  - lib/aerospike/policy/record_exists_action.rb
@@ -168,14 +179,6 @@ files:
168
179
  - lib/aerospike/query/partition_filter.rb
169
180
  - lib/aerospike/query/partition_status.rb
170
181
  - lib/aerospike/query/partition_tracker.rb
171
- - lib/aerospike/query/pred_exp.rb
172
- - lib/aerospike/query/pred_exp/and_or.rb
173
- - lib/aerospike/query/pred_exp/geo_json_value.rb
174
- - lib/aerospike/query/pred_exp/integer_value.rb
175
- - lib/aerospike/query/pred_exp/op.rb
176
- - lib/aerospike/query/pred_exp/regex.rb
177
- - lib/aerospike/query/pred_exp/regex_flags.rb
178
- - lib/aerospike/query/pred_exp/string_value.rb
179
182
  - lib/aerospike/query/query_command.rb
180
183
  - lib/aerospike/query/query_executor.rb
181
184
  - lib/aerospike/query/query_partition_command.rb
@@ -230,7 +233,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
230
233
  - !ruby/object:Gem::Version
231
234
  version: '0'
232
235
  requirements: []
233
- rubygems_version: 3.3.3
236
+ rubygems_version: 3.5.11
234
237
  signing_key:
235
238
  specification_version: 4
236
239
  summary: An Aerospike driver for Ruby.
@@ -1,105 +0,0 @@
1
- # Copyright 2014-2020 Aerospike, Inc.
2
- #
3
- # Portions may be licensed to Aerospike, Inc. under one or more contributor
4
- # license agreements.
5
- #
6
- # Licensed under the Apache License, Version 2.0 (the "License"); you may not
7
- # use this file except in compliance with the License. You may obtain a copy of
8
- # the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
14
- # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
15
- # License for the specific language governing permissions and limitations under
16
- # the License.
17
-
18
- require 'aerospike/command/multi_command'
19
-
20
- module Aerospike
21
-
22
- class BatchDirectCommand < MultiCommand #:nodoc:
23
-
24
- attr_accessor :batch
25
- attr_accessor :policy
26
- attr_accessor :key_map
27
- attr_accessor :bin_names
28
- attr_accessor :results
29
- attr_accessor :read_attr
30
-
31
- def initialize(node, batch, policy, key_map, bin_names, results, read_attr)
32
- super(node)
33
-
34
- @batch = batch
35
- @policy = policy
36
- @key_map = key_map
37
- @bin_names = bin_names
38
- @results = results
39
- @read_attr = read_attr
40
- end
41
-
42
- def write_buffer
43
- # Estimate buffer size
44
- begin_cmd
45
- byte_size = batch.keys.length * DIGEST_SIZE
46
-
47
- @data_offset += batch.namespace.bytesize +
48
- FIELD_HEADER_SIZE + byte_size + FIELD_HEADER_SIZE
49
-
50
- if bin_names
51
- bin_names.each do |bin_name|
52
- estimate_operation_size_for_bin_name(bin_name)
53
- end
54
- end
55
-
56
- size_buffer
57
-
58
- operation_count = 0
59
- if bin_names
60
- operation_count = bin_names.length
61
- end
62
-
63
- write_header_read(policy, read_attr, 0, 2, operation_count)
64
- write_field_string(batch.namespace, Aerospike::FieldType::NAMESPACE)
65
- write_field_header(byte_size, Aerospike::FieldType::DIGEST_RIPE_ARRAY)
66
-
67
- batch.keys.each do |key|
68
- @data_offset += @data_buffer.write_binary(key.digest, @data_offset)
69
- end
70
-
71
- if bin_names
72
- bin_names.each do |bin_name|
73
- write_operation_for_bin_name(bin_name, Aerospike::Operation::READ)
74
- end
75
- end
76
-
77
- end_cmd
78
- mark_compressed(@policy)
79
- end
80
-
81
- # Parse all results in the batch. Add records to shared list.
82
- # If the record was not found, the bins will be nil.
83
- def parse_row(result_code)
84
- generation = @data_buffer.read_int32(6)
85
- expiration = @data_buffer.read_int32(10)
86
- field_count = @data_buffer.read_int16(18)
87
- op_count = @data_buffer.read_int16(20)
88
-
89
- key = parse_key(field_count)
90
-
91
- item = key_map[key.digest]
92
- if item
93
- if result_code == 0
94
- index = item.index
95
- key = item.key
96
- results[index] = parse_record(key, op_count, generation, expiration)
97
- end
98
- else
99
- Aerospike.logger.warn("Unexpected batch key returned: #{key}")
100
- end
101
- end
102
-
103
- end # class
104
-
105
- end # module
@@ -1,51 +0,0 @@
1
- # Copyright 2014-2020 Aerospike, Inc.
2
- #
3
- # Portions may be licensed to Aerospike, Inc. under one or more contributor
4
- # license agreements.
5
- #
6
- # Licensed under the Apache License, Version 2.0 (the "License"); you may not
7
- # use this file except in compliance with the License. You may obtain a copy of
8
- # the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
14
- # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
15
- # License for the specific language governing permissions and limitations under
16
- # the License.
17
-
18
- require 'aerospike/command/batch_direct_command'
19
-
20
- module Aerospike
21
-
22
- class BatchDirectExistsCommand < BatchDirectCommand #:nodoc:
23
-
24
- def initialize(node, batch, policy, key_map, results)
25
- super(node, batch, policy, key_map, nil, results, INFO1_READ | INFO1_NOBINDATA)
26
- end
27
-
28
- # Parse all results in the batch. Add records to shared list.
29
- # If the record was not found, the bins will be nil.
30
- def parse_row(result_code)
31
- field_count = @data_buffer.read_int16(18)
32
- op_count = @data_buffer.read_int16(20)
33
-
34
- if op_count > 0
35
- raise Aerospike::Exceptions::Parse.new('Received bins that were not requested!')
36
- end
37
-
38
- key = parse_key(field_count)
39
- item = key_map[key.digest]
40
-
41
- if item
42
- index = item.index
43
- results[index] = (result_code == 0)
44
- else
45
- Aerospike::logger.debug("Unexpected batch key returned: #{key.namespace}, #{key.digest}")
46
- end
47
- end
48
-
49
- end # class
50
-
51
- end # module
@@ -1,40 +0,0 @@
1
- # Copyright 2014-2020 Aerospike, Inc.
2
- #
3
- # Portions may be licensed to Aerospike, Inc. under one or more contributor
4
- # license agreements.
5
- #
6
- # Licensed under the Apache License, Version 2.0 (the "License"); you may not
7
- # use this file except in compliance with the License. You may obtain a copy of
8
- # the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
14
- # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
15
- # License for the specific language governing permissions and limitations under
16
- # the License.
17
-
18
- module Aerospike
19
-
20
- BatchNamespace = Struct.new :namespace, :keys
21
-
22
- class BatchDirectNode #:nodoc:
23
-
24
- attr_accessor :node
25
- attr_accessor :batch_namespaces
26
-
27
- def self.generate_list(cluster, replica_policy, keys)
28
- keys.group_by { |key| cluster.get_node_for_key(replica_policy, key) }
29
- .map { |node, keys_for_node| BatchDirectNode.new(node, keys_for_node) }
30
- end
31
-
32
- def initialize(node, keys)
33
- @node = node
34
- @batch_namespaces = keys.group_by(&:namespace)
35
- .map { |ns, keys_for_ns| BatchNamespace.new(ns, keys_for_ns) }
36
- end
37
-
38
- end
39
-
40
- end
@@ -1,32 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Aerospike
4
- class PredExp
5
- class AndOr < PredExp
6
- def initialize(op, nexp)
7
- @op = op
8
- @nexp = nexp
9
- end
10
-
11
- def estimate_size
12
- 8
13
- end
14
-
15
- def write(buffer, offset)
16
- # write type
17
- buffer.write_int16(@op, offset)
18
- offset += 2
19
-
20
- # write length
21
- buffer.write_int32(2, offset)
22
- offset += 4
23
-
24
- # write predicate count
25
- buffer.write_int16(@nexp, offset)
26
- offset += 2
27
-
28
- offset
29
- end
30
- end
31
- end
32
- end
@@ -1,41 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Aerospike
4
- class PredExp
5
- class GeoJsonValue < PredExp
6
- def initialize(value, type)
7
- @value = value
8
- @type = type
9
- end
10
-
11
- def estimate_size
12
- @value.bytesize + 9
13
- end
14
-
15
- def write(buffer, offset)
16
- # tag
17
- buffer.write_uint16(@type, offset)
18
- offset += 2
19
-
20
- # len
21
- buffer.write_uint32(@value.bytesize + 3, offset)
22
- offset += 4
23
-
24
- # flags
25
-
26
- buffer.write_byte(0, offset)
27
- offset += 1
28
-
29
- # ncells
30
- buffer.write_uint16(0, offset)
31
- offset += 2
32
-
33
- # value
34
- len = buffer.write_binary(@value, offset)
35
- offset += len
36
-
37
- offset
38
- end
39
- end
40
- end
41
- end
@@ -1,32 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Aerospike
4
- class PredExp
5
- class IntegerValue < PredExp
6
- def initialize(value, type)
7
- @value = value
8
- @type = type
9
- end
10
-
11
- def estimate_size
12
- 14
13
- end
14
-
15
- def write(buffer, offset)
16
- # Write type
17
- buffer.write_int16(@type, offset)
18
- offset += 2
19
-
20
- # Write length
21
- buffer.write_int32(8, offset)
22
- offset += 4
23
-
24
- # Write value.
25
- buffer.write_int64(@value, offset)
26
- offset += 8
27
-
28
- offset
29
- end
30
- end
31
- end
32
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Aerospike
4
- class PredExp
5
- class Op < PredExp
6
- def initialize(op)
7
- @op = op
8
- end
9
-
10
- def estimate_size
11
- 6
12
- end
13
-
14
- def write(buffer, offset)
15
- # write type
16
- buffer.write_int16(@op, offset)
17
- offset += 2
18
-
19
- # write zero length
20
- buffer.write_int32(0, offset)
21
- offset += 4
22
-
23
- offset
24
- end
25
- end
26
- end
27
- end
@@ -1,32 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Aerospike
4
- class PredExp
5
- class Regex < PredExp
6
- def initialize(op, flag = Flags::NONE)
7
- @op = op
8
- @flag = flag
9
- end
10
-
11
- def estimate_size
12
- 10
13
- end
14
-
15
- def write(buffer, offset)
16
- # write op type
17
- buffer.write_int16(@op, offset)
18
- offset += 2
19
-
20
- # write length
21
- buffer.write_int32(4, offset)
22
- offset += 4
23
-
24
- # write predicate count
25
- buffer.write_int32(@flag, offset)
26
- offset += 4
27
-
28
- offset
29
- end
30
- end
31
- end
32
- end
@@ -1,23 +0,0 @@
1
- # fr# frozen_string_literal: true
2
-
3
- module Aerospike
4
- class PredExp
5
- # Regex bit flags
6
- module RegexFlags
7
- # Regex defaults
8
- NONE = 0
9
-
10
- # Use POSIX Extended Regular Expression syntax when interpreting regex.
11
- EXTENDED = 1
12
-
13
- # Do not differentiate case.
14
- ICASE = 2
15
-
16
- # Do not report position of matches.
17
- NOSUB = 4
18
-
19
- # Match-any-character operators don't match a newline.
20
- NEWLINE = 8
21
- end
22
- end
23
- end