tarantool 0.4.3 → 0.4.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/tarantool/request.rb +22 -14
- data/lib/tarantool/version.rb +1 -1
- data/test/run_all.rb +1 -1
- metadata +4 -4
data/lib/tarantool/request.rb
CHANGED
@@ -59,10 +59,12 @@ module Tarantool
|
|
59
59
|
@tarantool._send_request(shard_numbers, read_write, cb)
|
60
60
|
end
|
61
61
|
|
62
|
+
BINARY = ::Encoding::BINARY
|
62
63
|
def _select(space_no, index_no, offset, limit, keys, cb, fields, index_fields, shard_nums, translators = [])
|
63
64
|
get_tuples = limit == :first ? (limit = 1; :first) : :all
|
64
65
|
keys = [*keys]
|
65
|
-
body =
|
66
|
+
body = ''.force_encoding(BINARY)
|
67
|
+
::BinUtils.append_int32_le!(body, space_no, index_no, offset, limit, keys.size)
|
66
68
|
|
67
69
|
for key in keys
|
68
70
|
pack_tuple(body, key, index_fields, index_no)
|
@@ -135,25 +137,25 @@ module Tarantool
|
|
135
137
|
when :sint
|
136
138
|
value = value.to_i
|
137
139
|
_raise_integer_overflow(value, MIN_SINT32, MAX_SINT32) if value > MAX_SINT32 or value < MIN_SINT32
|
138
|
-
::BinUtils.
|
140
|
+
::BinUtils.append_bersize_int32_le!(body, value)
|
139
141
|
when :sint64
|
140
142
|
value = value.to_i
|
141
143
|
_raise_integer_overflow(value, MIN_SINT64, MAX_SINT64) if value > MAX_SINT64 or value < MIN_SINT64
|
142
|
-
::BinUtils.
|
144
|
+
::BinUtils.append_bersize_int64_le!(body, value)
|
143
145
|
when :sint16
|
144
146
|
value = value.to_i
|
145
147
|
_raise_integer_overflow(value, MIN_SINT16, MAX_SINT16) if value > MAX_SINT16 or value < MIN_SINT16
|
146
|
-
::BinUtils.
|
148
|
+
::BinUtils.append_bersize_int16_le!(body, value)
|
147
149
|
when :sint8
|
148
150
|
value = value.to_i
|
149
151
|
_raise_integer_overflow(value, MIN_SINT8, MAX_SINT8) if value > MAX_SINT8 or value < MIN_SINT8
|
150
|
-
::BinUtils.
|
152
|
+
::BinUtils.append_bersize_int8!(body, value)
|
151
153
|
when :varint
|
152
154
|
value = value.to_i
|
153
155
|
if 0 <= value && value < MAX_INT32
|
154
156
|
::BinUtils.append_bersize_int32_le!(body, value)
|
155
157
|
else
|
156
|
-
::BinUtils.
|
158
|
+
::BinUtils.append_bersize_int64_le!(body, value)
|
157
159
|
end
|
158
160
|
when :error
|
159
161
|
raise IndexIndexError
|
@@ -185,12 +187,14 @@ module Tarantool
|
|
185
187
|
_send_request(shard_nums, read_write, response)
|
186
188
|
end
|
187
189
|
|
190
|
+
|
188
191
|
def _insert(space_no, flags, tuple, fields, cb, ret_tuple, shard_nums, in_any_shard = nil, translators = [])
|
189
192
|
flags |= BOX_RETURN_TUPLE if ret_tuple
|
190
193
|
fields = [*fields]
|
191
194
|
|
192
195
|
tuple = [*tuple]
|
193
|
-
body =
|
196
|
+
body = ''.force_encoding(BINARY)
|
197
|
+
::BinUtils.append_int32_le!(body, space_no, flags)
|
194
198
|
pack_tuple(body, tuple, fields, :space)
|
195
199
|
|
196
200
|
_modify_request(REQUEST_INSERT, body, fields, ret_tuple, cb, shard_nums,
|
@@ -204,7 +208,8 @@ module Tarantool
|
|
204
208
|
operations = [operations]
|
205
209
|
end
|
206
210
|
|
207
|
-
body =
|
211
|
+
body = ''.force_encoding(BINARY)
|
212
|
+
::BinUtils.append_int32_le!(body, space_no, flags)
|
208
213
|
pack_tuple(body, pk, pk_fields, 0)
|
209
214
|
::BinUtils.append_int32_le!(body, operations.size)
|
210
215
|
|
@@ -234,7 +239,7 @@ module Tarantool
|
|
234
239
|
if operation.size == 2
|
235
240
|
if (Integer === field_no || field_no =~ /\A\d/)
|
236
241
|
unless Symbol === operation[1] && UPDATE_OPS[operation[1]] == 6
|
237
|
-
body
|
242
|
+
::BinUtils.append_int32_int8_le!(body, field_no, 0)
|
238
243
|
type = fields[field_no] || get_tail_item(fields, field_no, tail) ||
|
239
244
|
_detect_type(operation[1])
|
240
245
|
pack_field(body, type, operation[1])
|
@@ -251,7 +256,7 @@ module Tarantool
|
|
251
256
|
op = operation[1]
|
252
257
|
op = UPDATE_OPS[op] unless Integer === op
|
253
258
|
raise ArgumentError, "Unknown operation #{operation[1]}" unless op
|
254
|
-
body
|
259
|
+
::BinUtils.append_int32_int8_le!(body, field_no, op)
|
255
260
|
case op
|
256
261
|
when 0
|
257
262
|
if (type = fields[field_no]).nil?
|
@@ -277,8 +282,8 @@ module Tarantool
|
|
277
282
|
|
278
283
|
str = operation[4].to_s
|
279
284
|
::BinUtils.append_ber!(body, 10 + ber_size(str.bytesize) + str.bytesize)
|
280
|
-
::BinUtils.
|
281
|
-
::BinUtils.
|
285
|
+
::BinUtils.append_bersize_int32_le!(body, operation[2].to_i)
|
286
|
+
::BinUtils.append_bersize_int32_le!(body, operation[3].to_i)
|
282
287
|
::BinUtils.append_bersize_string!(body, str.to_s)
|
283
288
|
when 7
|
284
289
|
old_field_no = field_no +
|
@@ -306,7 +311,8 @@ module Tarantool
|
|
306
311
|
def _delete(space_no, pk, fields, pk_fields, cb, ret_tuple, shard_nums, translators = [])
|
307
312
|
flags = ret_tuple ? BOX_RETURN_TUPLE : 0
|
308
313
|
|
309
|
-
body =
|
314
|
+
body = ''.force_encoding(BINARY)
|
315
|
+
::BinUtils.append_int32_le!(body, space_no, flags)
|
310
316
|
pack_tuple(body, pk, pk_fields, 0)
|
311
317
|
|
312
318
|
_modify_request(REQUEST_DELETE, body, fields, ret_tuple, cb, shard_nums, :write, translators)
|
@@ -349,7 +355,9 @@ module Tarantool
|
|
349
355
|
return_types = [*opts[:returns] || TYPES_AUTO]
|
350
356
|
|
351
357
|
func_name = func_name.to_s
|
352
|
-
body =
|
358
|
+
body = ''.force_encoding(BINARY)
|
359
|
+
::BinUtils.append_int32_le!(body, flags)
|
360
|
+
::BinUtils.append_bersize_string!(body, func_name)
|
353
361
|
pack_tuple(body, values, value_types, :func_call)
|
354
362
|
|
355
363
|
shard_nums = opts[:shards] || all_shards
|
data/lib/tarantool/version.rb
CHANGED
data/test/run_all.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tarantool
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.3
|
4
|
+
version: 0.4.3.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-08-
|
13
|
+
date: 2012-08-07 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: iproto
|
@@ -67,7 +67,7 @@ dependencies:
|
|
67
67
|
requirements:
|
68
68
|
- - ! '>='
|
69
69
|
- !ruby/object:Gem::Version
|
70
|
-
version: 0.0.
|
70
|
+
version: 0.0.2
|
71
71
|
type: :runtime
|
72
72
|
prerelease: false
|
73
73
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -75,7 +75,7 @@ dependencies:
|
|
75
75
|
requirements:
|
76
76
|
- - ! '>='
|
77
77
|
- !ruby/object:Gem::Version
|
78
|
-
version: 0.0.
|
78
|
+
version: 0.0.2
|
79
79
|
description: Tarantool KV-storage client.
|
80
80
|
email:
|
81
81
|
- ceo@prepor.ru
|