tarantool16 0.0.12 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +4 -1
- data/lib/tarantool16/connection/common.rb +7 -1
- data/lib/tarantool16/consts.rb +2 -1
- data/lib/tarantool16/db.rb +4 -0
- data/lib/tarantool16/dumb_db.rb +4 -0
- data/lib/tarantool16/version.rb +1 -1
- data/test/config.lua +15 -17
- data/test/test_dumb.rb +7 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a32fa448b9f723a683ca2eed5fcdcffb978684ae
|
4
|
+
data.tar.gz: cf785fd5ad492f3a7f0b2c845e84648958df2ea7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e7d3f686ea033c9cad8e6fe6bfc66d031b52ba25732413c467fde64bf3bca3e465f2fb347ad4ab8c9ec2662f23db5cfcf4e8fc407c6e73a6c281e0a37f675672
|
7
|
+
data.tar.gz: 73758e4cc1a1d447d90b8b81320ba2eae5ca71fc06394d92892ecdfdec29c3ac0e27e3f3497c297ec648025d26bef3d07279070731cc68727b89dbe3748dbd90
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Tarantool16
|
2
2
|
|
3
|
-
This is adapter for [tarantool](http://tarantool.org) version 1.6.
|
3
|
+
This is adapter for [tarantool](http://tarantool.org) version 1.6 and 1.7.
|
4
4
|
|
5
5
|
(adapter for version <=1.5 is called [tarantool](https://github.org/tarantoool/tarantool-ruby))
|
6
6
|
|
@@ -74,6 +74,9 @@ tar.update(:_space, {name: 'test'}, {format: [:=, [{name: :id, type: :num}, {nam
|
|
74
74
|
|
75
75
|
## Changelog
|
76
76
|
|
77
|
+
0.1.0 - breaking change: call now issues request in Tarantool17 format.
|
78
|
+
use call16 to issue `call` request to Tarantool16.
|
79
|
+
see tests for difference in returned results.
|
77
80
|
0.0.11 - change a way of unix socket option.
|
78
81
|
since previos scheme were introduced 12 hours ago,
|
79
82
|
i think it is still safe to change it.
|
@@ -217,7 +217,13 @@ module Tarantool16
|
|
217
217
|
def _call(name, args, cb)
|
218
218
|
req = {IPROTO_FUNCTION_NAME => name,
|
219
219
|
IPROTO_TUPLE => args}
|
220
|
-
send_request(
|
220
|
+
send_request(REQUEST_TYPE_CALL17, req, cb)
|
221
|
+
end
|
222
|
+
|
223
|
+
def _call16(name, args, cb)
|
224
|
+
req = {IPROTO_FUNCTION_NAME => name,
|
225
|
+
IPROTO_TUPLE => args}
|
226
|
+
send_request(REQUEST_TYPE_CALL16, req, cb)
|
221
227
|
end
|
222
228
|
|
223
229
|
def _eval(expr, args, cb)
|
data/lib/tarantool16/consts.rb
CHANGED
@@ -24,10 +24,11 @@ module Tarantool16
|
|
24
24
|
REQUEST_TYPE_REPLACE = 3
|
25
25
|
REQUEST_TYPE_UPDATE = 4
|
26
26
|
REQUEST_TYPE_DELETE = 5
|
27
|
-
|
27
|
+
REQUEST_TYPE_CALL16 = 6
|
28
28
|
REQUEST_TYPE_AUTHENTICATE = 7
|
29
29
|
REQUEST_TYPE_EVAL = 8
|
30
30
|
REQUEST_TYPE_UPSERT = 9
|
31
|
+
REQUEST_TYPE_CALL17 = 10
|
31
32
|
REQUEST_TYPE_ERROR = 1 << 15
|
32
33
|
|
33
34
|
|
data/lib/tarantool16/db.rb
CHANGED
data/lib/tarantool16/dumb_db.rb
CHANGED
data/lib/tarantool16/version.rb
CHANGED
data/test/config.lua
CHANGED
@@ -3,18 +3,16 @@ box.cfg{
|
|
3
3
|
listen = 33013,
|
4
4
|
wal_dir='.',
|
5
5
|
snap_dir='.',
|
6
|
+
wal_mode='none',
|
6
7
|
}
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
local s2 = box.schema.space.create('test1', {id = 514, if_not_exists = true})
|
16
|
-
local ip = s2:create_index('primary', {type = 'hash', parts = {1, 'NUM'}, if_not_exists = true})
|
17
|
-
end
|
8
|
+
box.once('initbox', function()
|
9
|
+
local s1 = box.schema.space.create('test', {id = 513, if_not_exists = true})
|
10
|
+
local ip = s1:create_index('primary', {type = 'hash', parts = {1, 'NUM'}, if_not_exists = true})
|
11
|
+
local iname = s1:create_index('name', {type = 'tree', parts = {2, 'STR'}, if_not_exists = true})
|
12
|
+
local irtree = s1:create_index('point', {type = 'rtree', unique=false, parts = {3, 'ARRAY'}, if_not_exists = true})
|
13
|
+
local ipname = s1:create_index('id_name', {type = 'tree', parts = {1, 'NUM', 2, 'STR'}})
|
14
|
+
local s2 = box.schema.space.create('test1', {id = 514, if_not_exists = true})
|
15
|
+
local ip = s2:create_index('primary', {type = 'hash', parts = {1, 'NUM'}, if_not_exists = true})
|
18
16
|
|
19
17
|
function reseed()
|
20
18
|
local s1 = box.space.test
|
@@ -27,15 +25,15 @@ function reseed()
|
|
27
25
|
s2:insert{2, "world", {3, 4}, 200}
|
28
26
|
end
|
29
27
|
|
30
|
-
|
28
|
+
function func1(i)
|
29
|
+
return i+1
|
30
|
+
end
|
31
|
+
|
31
32
|
box.schema.user.grant('guest', 'read,write,execute', 'universe')
|
33
|
+
box.schema.user.create('tester', {password='testpass'})
|
34
|
+
box.schema.user.grant('tester', 'read,write,execute', 'universe')
|
32
35
|
end)
|
33
36
|
|
34
|
-
if not box.schema.user.exists('tester') then
|
35
|
-
box.schema.user.create('tester', {password='testpass'})
|
36
|
-
box.schema.user.grant('tester', 'read,write,execute', 'universe')
|
37
|
-
end
|
38
|
-
|
39
37
|
local console = require 'console'
|
40
38
|
console.listen '0.0.0.0:33015'
|
41
39
|
|
data/test/test_dumb.rb
CHANGED
@@ -71,6 +71,11 @@ describe 'DumbConnection' do
|
|
71
71
|
db.delete(:test, "world", index: 1).must_equal [r2]
|
72
72
|
end
|
73
73
|
|
74
|
+
it "should call" do
|
75
|
+
db.call("func1", [1]).must_equal [2]
|
76
|
+
db.call16("func1", [1]).must_equal [[2]]
|
77
|
+
end
|
78
|
+
|
74
79
|
it "should eval" do
|
75
80
|
db.eval("local a, b = ... ; return a + b", [1, 2]).must_equal [3]
|
76
81
|
end
|
@@ -118,7 +123,7 @@ describe 'DumbConnection' do
|
|
118
123
|
Spawn.with_pause do
|
119
124
|
proc {
|
120
125
|
db.get(:test, 1)
|
121
|
-
}.must_raise Tarantool16::Connection::CouldNotConnect
|
126
|
+
}.must_raise ::Tarantool16::Connection::CouldNotConnect
|
122
127
|
end
|
123
128
|
end
|
124
129
|
|
@@ -127,7 +132,7 @@ describe 'DumbConnection' do
|
|
127
132
|
Spawn.with_pause do
|
128
133
|
proc {
|
129
134
|
db.get(:test, 1)
|
130
|
-
}.must_raise Tarantool16::Connection::Timeout
|
135
|
+
}.must_raise ::Tarantool16::Connection::Timeout
|
131
136
|
end
|
132
137
|
end
|
133
138
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tarantool16
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sokolov Yura aka funny_falcon
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-11-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -101,7 +101,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
101
101
|
version: '0'
|
102
102
|
requirements: []
|
103
103
|
rubyforge_project:
|
104
|
-
rubygems_version: 2.
|
104
|
+
rubygems_version: 2.5.1
|
105
105
|
signing_key:
|
106
106
|
specification_version: 4
|
107
107
|
summary: adapter for Tarantool 1.6
|