diff --git a/src/box/lua/box.lua b/src/box/lua/box.lua
index bff256631437f6f31bf930754e359bdf31ac536a..ca90a1a69727e343b8604e6dc709263ea51312ff 100644
--- a/src/box/lua/box.lua
+++ b/src/box/lua/box.lua
@@ -8,7 +8,8 @@ box.flags = { BOX_RETURN_TUPLE = 0x01, BOX_ADD = 0x02, BOX_REPLACE = 0x04 }
 --
 --
 function box.select_limit(space, index, offset, limit, ...)
-    return box.net.self:select_limit(space, index, offset, limit, ...)
+    return box.net.self:select_limit(tonumber(space), tonumber(index), 
+        tonumber(offset), tonumber(limit), ...)
 end
 
 
@@ -16,7 +17,7 @@ end
 --
 --
 function box.select(space, index, ...)
-    return box.net.self:select(space, index, ...)
+    return box.net.self:select(tonumber(space), tonumber(index), ...)
 end
 
 --
@@ -25,7 +26,8 @@ end
 -- starts from the key.
 --
 function box.select_range(sno, ino, limit, ...)
-    return box.net.self:select_range(sno, ino, limit, ...)
+    return box.net.self:select_range(tonumber(sno), tonumber(ino),
+        tonumber(limit), ...)
 end
 
 --
@@ -34,7 +36,8 @@ end
 -- starts from the key.
 --
 function box.select_reverse_range(sno, ino, limit, ...)
-    return box.net.self:select_reverse_range(sno, ino, limit, ...)
+    return box.net.self:select_reverse_range(tonumber(sno), tonumber(ino),
+        tonumber(limit), ...)
 end
 
 --
@@ -42,22 +45,22 @@ end
 -- index is always 0. It doesn't accept compound keys
 --
 function box.delete(space, ...)
-    return box.net.self:delete(space, ...)
+    return box.net.self:delete(tonumber(space), ...)
 end
 
 -- insert or replace a tuple
 function box.replace(space, ...)
-    return box.net.self:replace(space, ...)
+    return box.net.self:replace(tonumber(space), ...)
 end
 
 -- insert a tuple (produces an error if the tuple already exists)
 function box.insert(space, ...)
-    return box.net.self:insert(space, ...)
+    return box.net.self:insert(tonumber(space), ...)
 end
 
 --
 function box.update(space, key, format, ...)
-    return box.net.self:update(space, key, format, ...)
+    return box.net.self:update(tonumber(space), key, format, ...)
 end
 
 
diff --git a/test/big/lua.result b/test/big/lua.result
index 046b4acd132099c3899cb025a39209688d7eae41..ae7e2c41a9c75566f0578de938d552a1fa969931 100644
--- a/test/big/lua.result
+++ b/test/big/lua.result
@@ -11,7 +11,7 @@ lua box.space[1].index[1]:max()
 ---
  - 'brave': {'new', 'world'}
 ...
-call box.select(1, 1, 'new', 'world')
+call box.select('1', '1', 'new', 'world')
 Found 1 tuple:
 ['brave', 'new', 'world']
 #
@@ -19,9 +19,9 @@ Found 1 tuple:
 # "assert failed, when key cardinality is greater than index cardinality"
 # https://bugs.launchpad.net/tarantool/+bug/904208
 #
-call box.select(1, 1, 'new', 'world', 'order')
+call box.select('1', '1', 'new', 'world', 'order')
 An error occurred: ER_KEY_PART_COUNT, 'Invalid key part count (expected [0..2], got 3)'
-call box.delete(1, 'brave')
+call box.delete('1', 'brave')
 Found 1 tuple:
 ['brave', 'new', 'world']
 #
@@ -55,16 +55,16 @@ lua tuple
 ---
  - 'item 3': {'california', 'uber alles'}
 ...
-call box.delete(1, 'item 1')
+call box.delete('1', 'item 1')
 Found 1 tuple:
 ['item 1', 'alabama', 1735290739]
-call box.delete(1, 'item 2')
+call box.delete('1', 'item 2')
 Found 1 tuple:
 ['item 2', 'california', 'dreaming ']
-call box.delete(1, 'item 3')
+call box.delete('1', 'item 3')
 Found 1 tuple:
 ['item 3', 'california', 'uber alles']
-call box.delete(1, 'item 4')
+call box.delete('1', 'item 4')
 Found 1 tuple:
 ['item 4', 'georgia', 'on my mind']
 insert into t5 values ('01234567', 'new', 'world')
diff --git a/test/big/lua.test b/test/big/lua.test
index 76eb8f0a147595809da602a4a355602392691029..476dee6e6bb1fdc5ece12d82855f0e6121d8bdf3 100644
--- a/test/big/lua.test
+++ b/test/big/lua.test
@@ -13,14 +13,14 @@ for file in ("index_random_test.lua",):
 exec sql "insert into t1 values ('brave', 'new', 'world')"
 exec admin "lua box.space[1].index[1]:min()"
 exec admin "lua box.space[1].index[1]:max()"
-exec sql "call box.select(1, 1, 'new', 'world')"
+exec sql "call box.select('1', '1', 'new', 'world')"
 print """#
 # A test case for Bug #904208
 # "assert failed, when key cardinality is greater than index cardinality"
 # https://bugs.launchpad.net/tarantool/+bug/904208
 #"""
-exec sql "call box.select(1, 1, 'new', 'world', 'order')"
-exec sql "call box.delete(1, 'brave')"
+exec sql "call box.select('1', '1', 'new', 'world', 'order')"
+exec sql "call box.delete('1', 'brave')"
 
 print """#
 # A test case for Bug #902091
@@ -36,10 +36,10 @@ exec admin "lua iter, tuple = box.space[1].index[1]:next('california')"
 exec admin "lua tuple"
 exec admin "lua iter, tuple = box.space[1].index[1]:next(iter)"
 exec admin "lua tuple"
-exec sql "call box.delete(1, 'item 1')"
-exec sql "call box.delete(1, 'item 2')"
-exec sql "call box.delete(1, 'item 3')"
-exec sql "call box.delete(1, 'item 4')"
+exec sql "call box.delete('1', 'item 1')"
+exec sql "call box.delete('1', 'item 2')"
+exec sql "call box.delete('1', 'item 3')"
+exec sql "call box.delete('1', 'item 4')"
 
 #
 # Check range scan over multipart keys
diff --git a/test/big/sql.result b/test/big/sql.result
index 907fa92cc54926be215a6d5bed1aca3e3050dc51..8cfaf98431963b4ae406e032984dd7de6e55bcb3 100644
--- a/test/big/sql.result
+++ b/test/big/sql.result
@@ -63,10 +63,10 @@ No match
 select * from t0 where k1='Britney'
 Found 1 tuple:
 ['Spears', 'Britney']
-call box.select_range(0, 0, 100, 'Spears')
+call box.select_range('0', '0', '100', 'Spears')
 Found 1 tuple:
 ['Spears', 'Britney']
-call box.select_range(0, 1, 100, 'Britney')
+call box.select_range('0', '1', '100', 'Britney')
 Found 1 tuple:
 ['Spears', 'Britney']
 delete from t0 where k0='Spears'
@@ -102,17 +102,17 @@ Found 3 tuples:
 [830039403, 'part1', 'part2']
 [846816619, 'part1', 'part2_a']
 [863593835, 'part1', 'part2_b']
-call box.select_range(1, 1, 100, 'part1')
+call box.select_range('1', '1', '100', 'part1')
 Found 3 tuples:
 [830039403, 'part1', 'part2']
 [846816619, 'part1', 'part2_a']
 [863593835, 'part1', 'part2_b']
-call box.select_range(1, 0, 100, 'key2')
+call box.select_range('1', '0', '100', 'key2')
 Found 3 tuples:
 [830039403, 'part1', 'part2']
 [846816619, 'part1', 'part2_a']
 [863593835, 'part1', 'part2_b']
-call box.select_range(1, 1, 100, 'part1', 'part2_a')
+call box.select_range('1', '1', '100', 'part1', 'part2_a')
 Found 2 tuples:
 [846816619, 'part1', 'part2_a']
 [863593835, 'part1', 'part2_b']
diff --git a/test/big/sql.test b/test/big/sql.test
index e3624afeed81ca656b5e3f17f27842d8e15bc17e..51b875591b6a0d40d7702e5ee7ed69339a8be3de 100644
--- a/test/big/sql.test
+++ b/test/big/sql.test
@@ -45,8 +45,8 @@ exec sql "insert into t0 values ('Spears', 'Britney')"
 exec sql "select * from t0 where k0='Spears'"
 exec sql "select * from t0 where k1='Anything'"
 exec sql "select * from t0 where k1='Britney'"
-exec sql "call box.select_range(0, 0, 100, 'Spears')"
-exec sql "call box.select_range(0, 1, 100, 'Britney')"
+exec sql "call box.select_range('0', '0', '100', 'Spears')"
+exec sql "call box.select_range('0', '1', '100', 'Britney')"
 exec sql "delete from t0 where k0='Spears'"
 print """#
 # Test composite keys with trees
@@ -61,9 +61,9 @@ exec sql "select * from t1 where k0='key1'"
 exec sql "select * from t1 where k0='key2'"
 exec sql "select * from t1 where k0='key3'"
 exec sql "select * from t1 where k1='part1'"
-exec sql "call box.select_range(1, 1, 100, 'part1')"
-exec sql "call box.select_range(1, 0, 100, 'key2')"
-exec sql "call box.select_range(1, 1, 100, 'part1', 'part2_a')"
+exec sql "call box.select_range('1', '1', '100', 'part1')"
+exec sql "call box.select_range('1', '0', '100', 'key2')"
+exec sql "call box.select_range('1', '1', '100', 'part1', 'part2_a')"
 # check non-unique multipart keys
 exec sql "insert into t5 values ('01234567', 'part1', 'part2')"
 exec sql "insert into t5 values ('11234567', 'part1', 'part2')"
diff --git a/test/big/tree_pk.result b/test/big/tree_pk.result
index f846c16566b12b55e8fde7dc82bac59eb5c89e5e..8fd6838b05be885eac9a4618b514480cf6ec17ef 100644
--- a/test/big/tree_pk.result
+++ b/test/big/tree_pk.result
@@ -39,10 +39,10 @@ save snapshot
 ---
 ok
 ...
-call box.select_range(3, 0, 100, 'second')
+call box.select_range('3', '0', '100', 'second')
 Found 1 tuple:
 ['second', 'tuple 2']
-call box.select_range(3, 0, 100, 'identifier')
+call box.select_range('3', '0', '100', 'identifier')
 Found 2 tuples:
 ['identifier', 'tuple']
 ['second', 'tuple 2']
@@ -72,21 +72,21 @@ Insert OK, 1 row affected
 lua  function box.crossjoin(space0, space1, limit)   space0 = tonumber(space0)   space1 = tonumber(space1)   limit = tonumber(limit)   local result = {}   for k0, v0 in box.space[space0]:pairs() do     for k1, v1 in box.space[space1]:pairs() do       if limit <= 0 then         return unpack(result)       end       newtuple = {v0:unpack()}       for _, v in v1:pairs() do table.insert(newtuple, v) end       table.insert(result, newtuple)       limit = limit - 1     end   end   return unpack(result) end
 ---
 ...
-call box.crossjoin(3, 3, 0)
+call box.crossjoin('3', '3', '0')
 No match
-call box.crossjoin(3, 3, 5)
+call box.crossjoin('3', '3', '5')
 Found 4 tuples:
 [1, 'tuple', 1, 'tuple']
 [1, 'tuple', 2, 'tuple']
 [2, 'tuple', 1, 'tuple']
 [2, 'tuple', 2, 'tuple']
-call box.crossjoin(3, 3, 10000)
+call box.crossjoin('3', '3', '10000')
 Found 4 tuples:
 [1, 'tuple', 1, 'tuple']
 [1, 'tuple', 2, 'tuple']
 [2, 'tuple', 1, 'tuple']
 [2, 'tuple', 2, 'tuple']
-call box.crossjoin(3, 2, 10000)
+call box.crossjoin('3', '2', '10000')
 Found 2 tuples:
 [1, 'tuple', 1, 'tuple']
 [2, 'tuple', 1, 'tuple']
diff --git a/test/big/tree_pk.test b/test/big/tree_pk.test
index a1bfb99f81453d1cd4c34c0f9bcbc41f76d41bfa..355d92dfacc6c78190a42a2e404a64ea6445b76c 100644
--- a/test/big/tree_pk.test
+++ b/test/big/tree_pk.test
@@ -20,8 +20,8 @@ exec sql "insert into t3 values ('identifier', 'tuple')"
 exec admin "save snapshot"
 exec sql "insert into t3 values ('second', 'tuple 2')"
 exec admin "save snapshot"
-exec sql "call box.select_range(3, 0, 100, 'second')"
-exec sql "call box.select_range(3, 0, 100, 'identifier')"
+exec sql "call box.select_range('3', '0', '100', 'second')"
+exec sql "call box.select_range('3', '0', '100', 'identifier')"
 
 exec sql "insert into t3 values ('third', 'tuple 3')"
 exec sql "select * from t3 where k0 = 'identifier'"
@@ -55,10 +55,10 @@ exec sql "insert into t2 values (1, 'tuple')"
 exec sql "insert into t3 values (1, 'tuple')"
 exec sql "insert into t3 values (2, 'tuple')"
 exec admin "lua " + lua.replace('\n', ' ')
-exec sql "call box.crossjoin(3, 3, 0)"
-exec sql "call box.crossjoin(3, 3, 5)"
-exec sql "call box.crossjoin(3, 3, 10000)"
-exec sql "call box.crossjoin(3, 2, 10000)"
+exec sql "call box.crossjoin('3', '3', '0')"
+exec sql "call box.crossjoin('3', '3', '5')"
+exec sql "call box.crossjoin('3', '3', '10000')"
+exec sql "call box.crossjoin('3', '2', '10000')"
 exec admin "lua box.space[3]:truncate()"
 
 # Bug #922520 - select missing keys
diff --git a/test/box/fiber.result b/test/box/fiber.result
index 8a333e0aa16bd8b5b34177ded344b9267241affe..3b49764ee772ca8a9d636ddf2e41055d94050283 100644
--- a/test/box/fiber.result
+++ b/test/box/fiber.result
@@ -19,7 +19,7 @@ error: 'box.process(CALL, ...) is not allowed'
 ...
 insert into t0 values (1, 'test box delete')
 Insert OK, 1 row affected
-call box.delete(0, '���')
+call box.delete('0', '���')
 Found 1 tuple:
 [1, 'test box delete']
 insert into t0 values (1, 'test box delete')
@@ -30,7 +30,7 @@ lua box.delete(0, 1)
 ...
 insert into t0 values ('abcd', 'test box delete')
 Insert OK, 1 row affected
-call box.delete(0, 'abcd')
+call box.delete('0', 'abcd')
 Found 1 tuple:
 [1684234849, 'test box delete']
 insert into t0 values ('abcd', 'test box delete')
@@ -41,78 +41,78 @@ lua box.delete(0, 'abcd')
 ...
 insert into t0 values ('abcd', 'test box.select()')
 Insert OK, 1 row affected
-call box.replace(0, 'abcd', 'hello', 'world')
+call box.replace('0', 'abcd', 'hello', 'world')
 Found 1 tuple:
 [1684234849, 'hello', 'world']
-call box.replace(0, 'defc', 'goodbye', 'universe')
+call box.replace('0', 'defc', 'goodbye', 'universe')
 Found 1 tuple:
 [1667655012, 'goodbye', 'universe']
-call box.replace(0, 'defc', 'goodbye', 'universe')
+call box.replace('0', 'defc', 'goodbye', 'universe')
 Found 1 tuple:
 [1667655012, 'goodbye', 'universe']
-call box.replace(0, 'defc', 'goodbye', 'universe')
+call box.replace('0', 'defc', 'goodbye', 'universe')
 Found 1 tuple:
 [1667655012, 'goodbye', 'universe']
-call box.replace(0, 'defc', 'goodbye', 'universe')
+call box.replace('0', 'defc', 'goodbye', 'universe')
 Found 1 tuple:
 [1667655012, 'goodbye', 'universe']
-call box.replace(0, 'defc', 'goodbye', 'universe')
+call box.replace('0', 'defc', 'goodbye', 'universe')
 Found 1 tuple:
 [1667655012, 'goodbye', 'universe']
-call box.replace(0, 'defc', 'goodbye', 'universe')
+call box.replace('0', 'defc', 'goodbye', 'universe')
 Found 1 tuple:
 [1667655012, 'goodbye', 'universe']
-call box.replace(0, 'defc', 'goodbye', 'universe')
+call box.replace('0', 'defc', 'goodbye', 'universe')
 Found 1 tuple:
 [1667655012, 'goodbye', 'universe']
-call box.replace(0, 'defc', 'goodbye', 'universe')
+call box.replace('0', 'defc', 'goodbye', 'universe')
 Found 1 tuple:
 [1667655012, 'goodbye', 'universe']
-call box.replace(0, 'defc', 'goodbye', 'universe')
+call box.replace('0', 'defc', 'goodbye', 'universe')
 Found 1 tuple:
 [1667655012, 'goodbye', 'universe']
-call box.replace(0, 'defc', 'goodbye', 'universe')
+call box.replace('0', 'defc', 'goodbye', 'universe')
 Found 1 tuple:
 [1667655012, 'goodbye', 'universe']
-call box.replace(0, 'defc', 'goodbye', 'universe')
+call box.replace('0', 'defc', 'goodbye', 'universe')
 Found 1 tuple:
 [1667655012, 'goodbye', 'universe']
-call box.replace(0, 'defc', 'goodbye', 'universe')
+call box.replace('0', 'defc', 'goodbye', 'universe')
 Found 1 tuple:
 [1667655012, 'goodbye', 'universe']
-call box.replace(0, 'abcd')
+call box.replace('0', 'abcd')
 Found 1 tuple:
 [1684234849]
-call box.delete(0, 'abcd')
+call box.delete('0', 'abcd')
 Found 1 tuple:
 [1684234849]
-call box.delete(0, 'defc')
+call box.delete('0', 'defc')
 Found 1 tuple:
 [1667655012, 'goodbye', 'universe']
-call box.insert(0, 'test', 'old', 'abcd')
+call box.insert('0', 'test', 'old', 'abcd')
 Found 1 tuple:
 [1953719668, 'old', 1684234849]
-call box.insert(0, 'test', 'old', 'abcd')
+call box.insert('0', 'test', 'old', 'abcd')
 An error occurred: ER_TUPLE_FOUND, 'Duplicate key exists in unique index 0'
-call box.update(0, 'test', '=p=p', 0, 'pass', 1, 'new')
+call box.update('0', 'test', '=p=p', 0, 'pass', 1, 'new')
 Found 1 tuple:
 [1936941424, 'new', 1684234849]
-call box.update(0, 'miss', '+p', 2, '���')
+call box.update('0', 'miss', '+p', 2, '���')
 No match
-call box.update(0, 'pass', '+p', 2, '���')
+call box.update('0', 'pass', '+p', 2, '���')
 Found 1 tuple:
 [1936941424, 'new', 1684234850]
-call box.update(0, 'pass', '-p', 2, '���')
+call box.update('0', 'pass', '-p', 2, '���')
 Found 1 tuple:
 [1936941424, 'new', 1684234849]
-call box.update(0, 'pass', '-p', 2, '���')
+call box.update('0', 'pass', '-p', 2, '���')
 Found 1 tuple:
 [1936941424, 'new', 1684234848]
 lua box.update(0, 'pass', '+p', 2, 1)
 ---
  - 1936941424: {'new', 1684234849}
 ...
-call box.delete(0, 'pass')
+call box.delete('0', 'pass')
 Found 1 tuple:
 [1936941424, 'new', 1684234849]
 reload configuration
diff --git a/test/box/fiber.test b/test/box/fiber.test
index 09d8b3d90a8f6f3e36873cc183e5c92ab7065628..ec15bf044dda3dd49322401f28470cd64732aeef 100644
--- a/test/box/fiber.test
+++ b/test/box/fiber.test
@@ -17,40 +17,40 @@ exec admin "lua box.process(17, box.pack('iiiiiip', 0, 0, 0, 2^31, 1, 1, 1))"
 exec admin "lua box.process(22, box.pack('iii', 0, 0, 0))"
 
 exec sql "insert into t0 values (1, 'test box delete')"
-exec sql "call box.delete(0, '\1\0\0\0')"
+exec sql "call box.delete('0', '\1\0\0\0')"
 exec sql "insert into t0 values (1, 'test box delete')"
 exec admin "lua box.delete(0, 1)"
 exec sql "insert into t0 values ('abcd', 'test box delete')"
-exec sql "call box.delete(0, 'abcd')"
+exec sql "call box.delete('0', 'abcd')"
 exec sql "insert into t0 values ('abcd', 'test box delete')"
 exec admin "lua box.delete(0, 'abcd')"
 exec sql "insert into t0 values ('abcd', 'test box.select()')"
-exec sql "call box.replace(0, 'abcd', 'hello', 'world')"
-exec sql "call box.replace(0, 'defc', 'goodbye', 'universe')"
-exec sql "call box.replace(0, 'defc', 'goodbye', 'universe')"
-exec sql "call box.replace(0, 'defc', 'goodbye', 'universe')"
-exec sql "call box.replace(0, 'defc', 'goodbye', 'universe')"
-exec sql "call box.replace(0, 'defc', 'goodbye', 'universe')"
-exec sql "call box.replace(0, 'defc', 'goodbye', 'universe')"
-exec sql "call box.replace(0, 'defc', 'goodbye', 'universe')"
-exec sql "call box.replace(0, 'defc', 'goodbye', 'universe')"
-exec sql "call box.replace(0, 'defc', 'goodbye', 'universe')"
-exec sql "call box.replace(0, 'defc', 'goodbye', 'universe')"
-exec sql "call box.replace(0, 'defc', 'goodbye', 'universe')"
-exec sql "call box.replace(0, 'defc', 'goodbye', 'universe')"
-exec sql "call box.replace(0, 'abcd')"
-exec sql "call box.delete(0, 'abcd')"
-exec sql "call box.delete(0, 'defc')"
-exec sql "call box.insert(0, 'test', 'old', 'abcd')"
+exec sql "call box.replace('0', 'abcd', 'hello', 'world')"
+exec sql "call box.replace('0', 'defc', 'goodbye', 'universe')"
+exec sql "call box.replace('0', 'defc', 'goodbye', 'universe')"
+exec sql "call box.replace('0', 'defc', 'goodbye', 'universe')"
+exec sql "call box.replace('0', 'defc', 'goodbye', 'universe')"
+exec sql "call box.replace('0', 'defc', 'goodbye', 'universe')"
+exec sql "call box.replace('0', 'defc', 'goodbye', 'universe')"
+exec sql "call box.replace('0', 'defc', 'goodbye', 'universe')"
+exec sql "call box.replace('0', 'defc', 'goodbye', 'universe')"
+exec sql "call box.replace('0', 'defc', 'goodbye', 'universe')"
+exec sql "call box.replace('0', 'defc', 'goodbye', 'universe')"
+exec sql "call box.replace('0', 'defc', 'goodbye', 'universe')"
+exec sql "call box.replace('0', 'defc', 'goodbye', 'universe')"
+exec sql "call box.replace('0', 'abcd')"
+exec sql "call box.delete('0', 'abcd')"
+exec sql "call box.delete('0', 'defc')"
+exec sql "call box.insert('0', 'test', 'old', 'abcd')"
 # test that insert produces a duplicate key error
-exec sql "call box.insert(0, 'test', 'old', 'abcd')"
-exec sql "call box.update(0, 'test', '=p=p', 0, 'pass', 1, 'new')"
-exec sql "call box.update(0, 'miss', '+p', 2, '\1\0\0\0')"
-exec sql "call box.update(0, 'pass', '+p', 2, '\1\0\0\0')"
-exec sql "call box.update(0, 'pass', '-p', 2, '\1\0\0\0')"
-exec sql "call box.update(0, 'pass', '-p', 2, '\1\0\0\0')"
+exec sql "call box.insert('0', 'test', 'old', 'abcd')"
+exec sql "call box.update('0', 'test', '=p=p', 0, 'pass', 1, 'new')"
+exec sql "call box.update('0', 'miss', '+p', 2, '\1\0\0\0')"
+exec sql "call box.update('0', 'pass', '+p', 2, '\1\0\0\0')"
+exec sql "call box.update('0', 'pass', '-p', 2, '\1\0\0\0')"
+exec sql "call box.update('0', 'pass', '-p', 2, '\1\0\0\0')"
 exec admin "lua box.update(0, 'pass', '+p', 2, 1)"
-exec sql "call box.delete(0, 'pass')"
+exec sql "call box.delete('0', 'pass')"
 exec admin "reload configuration"
 # must be read-only
 
diff --git a/test/box/lua.result b/test/box/lua.result
index fcef60120cd3c72ca4617ee5853253f01ad7e998..86aa565163100f3e4357aeab009643f7d6472931 100644
--- a/test/box/lua.result
+++ b/test/box/lua.result
@@ -239,10 +239,10 @@ call f1()
 An error occurred: ER_PROC_RET, 'Return type 'function' is not supported in the binary protocol'
 insert into t0 values (1, 'test box delete')
 Insert OK, 1 row affected
-call box.delete(0, '���')
+call box.delete('0', '���')
 Found 1 tuple:
 [1, 'test box delete']
-call box.delete(0, '���')
+call box.delete('0', '���')
 No match
 insert into t0 values (1, 'test box delete')
 Insert OK, 1 row affected
@@ -255,12 +255,12 @@ lua box.delete(0, 1)
 ...
 insert into t0 values ('abcd', 'test box delete')
 Insert OK, 1 row affected
-call box.delete(0, '���')
+call box.delete('0', '���')
 No match
-call box.delete(0, 'abcd')
+call box.delete('0', 'abcd')
 Found 1 tuple:
 [1684234849, 'test box delete']
-call box.delete(0, 'abcd')
+call box.delete('0', 'abcd')
 No match
 insert into t0 values ('abcd', 'test box delete')
 Insert OK, 1 row affected
@@ -271,11 +271,11 @@ lua box.delete(0, 'abcd')
 lua box.delete(0, 'abcd')
 ---
 ...
-call box.select(0, 0, 'abcd')
+call box.select('0', '0', 'abcd')
 No match
 insert into t0 values ('abcd', 'test box.select()')
 Insert OK, 1 row affected
-call box.select(0, 0, 'abcd')
+call box.select('0', '0', 'abcd')
 Found 1 tuple:
 [1684234849, 'test box.select()']
 lua box.select(0, 0, 'abcd')
@@ -294,72 +294,72 @@ lua box.select(0)
 ---
 error: 'Invalid key part count in an exact match (expected 1, got 0)'
 ...
-call box.replace(0, 'abcd', 'hello', 'world')
+call box.replace('0', 'abcd', 'hello', 'world')
 Found 1 tuple:
 [1684234849, 'hello', 'world']
-call box.replace(0, 'defc', 'goodbye', 'universe')
+call box.replace('0', 'defc', 'goodbye', 'universe')
 Found 1 tuple:
 [1667655012, 'goodbye', 'universe']
-call box.select(0, 0, 'abcd')
+call box.select('0', '0', 'abcd')
 Found 1 tuple:
 [1684234849, 'hello', 'world']
-call box.select(0, 0, 'defc')
+call box.select('0', '0', 'defc')
 Found 1 tuple:
 [1667655012, 'goodbye', 'universe']
-call box.replace(0, 'abcd')
+call box.replace('0', 'abcd')
 Found 1 tuple:
 [1684234849]
-call box.select(0, 0, 'abcd')
+call box.select('0', '0', 'abcd')
 Found 1 tuple:
 [1684234849]
-call box.delete(0, 'abcd')
+call box.delete('0', 'abcd')
 Found 1 tuple:
 [1684234849]
-call box.delete(0, 'defc')
+call box.delete('0', 'defc')
 Found 1 tuple:
 [1667655012, 'goodbye', 'universe']
-call box.insert(0, 'test', 'old', 'abcd')
+call box.insert('0', 'test', 'old', 'abcd')
 Found 1 tuple:
 [1953719668, 'old', 1684234849]
-call box.insert(0, 'test', 'old', 'abcd')
+call box.insert('0', 'test', 'old', 'abcd')
 An error occurred: ER_TUPLE_FOUND, 'Duplicate key exists in unique index 0'
-call box.update(0, 'test', '=p=p', 0, 'pass', 1, 'new')
+call box.update('0', 'test', '=p=p', '����', 'pass', 1, 'new')
 Found 1 tuple:
 [1936941424, 'new', 1684234849]
-call box.select(0, 0, 'pass')
+call box.select('0', '0', 'pass')
 Found 1 tuple:
 [1936941424, 'new', 1684234849]
 call box.select_range(0, 0, 1, 'pass')
 Found 1 tuple:
 [1936941424, 'new', 1684234849]
-call box.update(0, 'miss', '+p', 2, '���')
+call box.update('0', 'miss', '+p', 2, '���')
 No match
-call box.update(0, 'pass', '+p', 2, '���')
+call box.update('0', 'pass', '+p', 2, '���')
 Found 1 tuple:
 [1936941424, 'new', 1684234850]
-call box.update(0, 'pass', '-p', 2, '���')
+call box.update('0', 'pass', '-p', 2, '���')
 Found 1 tuple:
 [1936941424, 'new', 1684234849]
-call box.update(0, 'pass', '-p', 2, '���')
+call box.update('0', 'pass', '-p', 2, '���')
 Found 1 tuple:
 [1936941424, 'new', 1684234848]
 lua box.update(0, 'pass', '+p', 2, 1)
 ---
  - 1936941424: {'new', 1684234849}
 ...
-call box.select(0, 0, 'pass')
+call box.select('0', '0', 'pass')
 Found 1 tuple:
 [1936941424, 'new', 1684234849]
-lua function field_x(space, key, field_index) return (box.select(space, 0, key))[field_index] end
+lua function field_x(space, key, field_index) return (box.select(space, 0, key))[tonumber(field_index)] end
 ---
 ...
-call field_x(0, 'pass', 0)
+call field_x('0', 'pass', '0')
 Found 1 tuple:
 [1936941424]
-call field_x(0, 'pass', 1)
+call field_x('0', 'pass', '1')
 Found 1 tuple:
 ['new']
-call box.delete(0, 'pass')
+call box.delete('0', 'pass')
 Found 1 tuple:
 [1936941424, 'new', 1684234849]
 lua dofile(...)
@@ -1186,19 +1186,19 @@ lua string.byte(box.pack('p', tonumber64(123)))
 lua box.space[0]:truncate()
 ---
 ...
-call box.insert(0, 'tes1', 'tes2', 'tes3', 'tes4', 'tes5')
+call box.insert('0', 'tes1', 'tes2', 'tes3', 'tes4', 'tes5')
 Found 1 tuple:
 [829646196, 846423412, 863200628, 879977844, 896755060]
-call box.update(0, 'tes1', '#p', 0, '')
+call box.update('0', 'tes1', '#p', 0, '')
 Found 1 tuple:
 [846423412, 863200628, 879977844, 896755060]
-call box.update(0, 'tes2', '#p', 0, '')
+call box.update('0', 'tes2', '#p', 0, '')
 Found 1 tuple:
 [863200628, 879977844, 896755060]
-call box.update(0, 'tes3', '#p', 0, '')
+call box.update('0', 'tes3', '#p', 0, '')
 Found 1 tuple:
 [879977844, 896755060]
-call box.update(0, 'tes4', '#p', 0, '')
+call box.update('0', 'tes4', '#p', 0, '')
 Found 1 tuple:
 [896755060]
 lua box.update(0, 'tes5', '#p', 0, '')
diff --git a/test/box/lua.test b/test/box/lua.test
index c5f711ff0cb46229545901c8b1d2d2e41d52602d..b9640c198fea573ec2afc7076361c5886bb94cb8 100644
--- a/test/box/lua.test
+++ b/test/box/lua.test
@@ -64,49 +64,49 @@ exec admin "lua function f1() return f1 end"
 exec sql "call f1()"
 
 exec sql "insert into t0 values (1, 'test box delete')"
-exec sql "call box.delete(0, '\1\0\0\0')"
-exec sql "call box.delete(0, '\1\0\0\0')"
+exec sql "call box.delete('0', '\1\0\0\0')"
+exec sql "call box.delete('0', '\1\0\0\0')"
 exec sql "insert into t0 values (1, 'test box delete')"
 exec admin "lua box.delete(0, 1)"
 exec admin "lua box.delete(0, 1)"
 exec sql "insert into t0 values ('abcd', 'test box delete')"
-exec sql "call box.delete(0, '\1\0\0\0')"
-exec sql "call box.delete(0, 'abcd')"
-exec sql "call box.delete(0, 'abcd')"
+exec sql "call box.delete('0', '\1\0\0\0')"
+exec sql "call box.delete('0', 'abcd')"
+exec sql "call box.delete('0', 'abcd')"
 exec sql "insert into t0 values ('abcd', 'test box delete')"
 exec admin "lua box.delete(0, 'abcd')"
 exec admin "lua box.delete(0, 'abcd')"
-exec sql "call box.select(0, 0, 'abcd')"
+exec sql "call box.select('0', '0', 'abcd')"
 exec sql "insert into t0 values ('abcd', 'test box.select()')"
-exec sql "call box.select(0, 0, 'abcd')"
+exec sql "call box.select('0', '0', 'abcd')"
 exec admin "lua box.select(0, 0, 'abcd')"
 exec admin "lua box.select(0, 0)"
 exec admin "lua box.select(0, 1)"
 exec admin "lua box.select(0)"
-exec sql "call box.replace(0, 'abcd', 'hello', 'world')"
-exec sql "call box.replace(0, 'defc', 'goodbye', 'universe')"
-exec sql "call box.select(0, 0, 'abcd')"
-exec sql "call box.select(0, 0, 'defc')"
-exec sql "call box.replace(0, 'abcd')"
-exec sql "call box.select(0, 0, 'abcd')"
-exec sql "call box.delete(0, 'abcd')"
-exec sql "call box.delete(0, 'defc')"
-exec sql "call box.insert(0, 'test', 'old', 'abcd')"
+exec sql "call box.replace('0', 'abcd', 'hello', 'world')"
+exec sql "call box.replace('0', 'defc', 'goodbye', 'universe')"
+exec sql "call box.select('0', '0', 'abcd')"
+exec sql "call box.select('0', '0', 'defc')"
+exec sql "call box.replace('0', 'abcd')"
+exec sql "call box.select('0', '0', 'abcd')"
+exec sql "call box.delete('0', 'abcd')"
+exec sql "call box.delete('0', 'defc')"
+exec sql "call box.insert('0', 'test', 'old', 'abcd')"
 # test that insert produces a duplicate key error
-exec sql "call box.insert(0, 'test', 'old', 'abcd')"
-exec sql "call box.update(0, 'test', '=p=p', 0, 'pass', 1, 'new')"
-exec sql "call box.select(0, 0, 'pass')"
+exec sql "call box.insert('0', 'test', 'old', 'abcd')"
+exec sql "call box.update('0', 'test', '=p=p', '\0\0\0\0', 'pass', 1, 'new')"
+exec sql "call box.select('0', '0', 'pass')"
 exec sql "call box.select_range(0, 0, 1, 'pass')"
-exec sql "call box.update(0, 'miss', '+p', 2, '\1\0\0\0')"
-exec sql "call box.update(0, 'pass', '+p', 2, '\1\0\0\0')"
-exec sql "call box.update(0, 'pass', '-p', 2, '\1\0\0\0')"
-exec sql "call box.update(0, 'pass', '-p', 2, '\1\0\0\0')"
+exec sql "call box.update('0', 'miss', '+p', 2, '\1\0\0\0')"
+exec sql "call box.update('0', 'pass', '+p', 2, '\1\0\0\0')"
+exec sql "call box.update('0', 'pass', '-p', 2, '\1\0\0\0')"
+exec sql "call box.update('0', 'pass', '-p', 2, '\1\0\0\0')"
 exec admin "lua box.update(0, 'pass', '+p', 2, 1)"
-exec sql "call box.select(0, 0, 'pass')"
-exec admin "lua function field_x(space, key, field_index) return (box.select(space, 0, key))[field_index] end"
-exec sql "call field_x(0, 'pass', 0)"
-exec sql "call field_x(0, 'pass', 1)"
-exec sql "call box.delete(0, 'pass')"
+exec sql "call box.select('0', '0', 'pass')"
+exec admin "lua function field_x(space, key, field_index) return (box.select(space, 0, key))[tonumber(field_index)] end"
+exec sql "call field_x('0', 'pass', '0')"
+exec sql "call field_x('0', 'pass', '1')"
+exec sql "call box.delete('0', 'pass')"
 fifo_lua = os.path.abspath("box/fifo.lua")
 # don't log the path name
 sys.stdout.push_filter("lua dofile(.*)", "lua dofile(...)")
@@ -373,11 +373,11 @@ exec admin "lua tonumber64('184467440737095516155')"
 exec admin "lua string.byte(box.pack('p', tonumber64(123)))"
 # test delete field
 exec admin "lua box.space[0]:truncate()"
-exec sql "call box.insert(0, 'tes1', 'tes2', 'tes3', 'tes4', 'tes5')"
-exec sql "call box.update(0, 'tes1', '#p', 0, '')"
-exec sql "call box.update(0, 'tes2', '#p', 0, '')"
-exec sql "call box.update(0, 'tes3', '#p', 0, '')"
-exec sql "call box.update(0, 'tes4', '#p', 0, '')"
+exec sql "call box.insert('0', 'tes1', 'tes2', 'tes3', 'tes4', 'tes5')"
+exec sql "call box.update('0', 'tes1', '#p', 0, '')"
+exec sql "call box.update('0', 'tes2', '#p', 0, '')"
+exec sql "call box.update('0', 'tes3', '#p', 0, '')"
+exec sql "call box.update('0', 'tes4', '#p', 0, '')"
 exec admin "lua box.update(0, 'tes5', '#p', 0, '')"
 exec admin "lua box.space[0]:truncate()"
 
diff --git a/test/box/net.box.result b/test/box/net.box.result
index 3465f79ece5ac8feed3efc4a8608c5487b37ce4c..0efdaa77f1fe22fdf0c54d876067c847a3b47bda 100644
--- a/test/box/net.box.result
+++ b/test/box/net.box.result
@@ -68,7 +68,7 @@ lua remote:select(0, 0, 345)
 ---
  - 345: {'test1', 'test2'}
 ...
-lua remote:call('box.select', 0, 0, 345)
+lua remote:call('box.select', '0', '0', 345)
 ---
  - 345: {'test1', 'test2'}
 ...
diff --git a/test/box/net.box.test b/test/box/net.box.test
index fca3756eb908b0217ef6b3f13231c3215d15b6c7..711d3cbc06b19079526aab3599f0cd8b1b3b721b 100644
--- a/test/box/net.box.test
+++ b/test/box/net.box.test
@@ -30,7 +30,7 @@ exec admin "lua remote:insert(0, 123, 'test1', 'test2')"
 
 exec admin "lua remote:insert(0, 345, 'test1', 'test2')"
 exec admin "lua remote:select(0, 0, 345)"
-exec admin "lua remote:call('box.select', 0, 0, 345)"
+exec admin "lua remote:call('box.select', '0', '0', 345)"
 exec admin "lua box.select(0, 0, 345)"
 
 
diff --git a/test/connector_c/tt.c b/test/connector_c/tt.c
index 0f4b495eb7fe452631ecb18ca3b84f7a21ed017a..db3b8d6c210707ba26c8657ca41444b41205d728 100644
--- a/test/connector_c/tt.c
+++ b/test/connector_c/tt.c
@@ -674,7 +674,7 @@ static void tt_tnt_net_delete(struct tt_test *test) {
 static void tt_tnt_net_call(struct tt_test *test) {
 	struct tnt_tuple args;
 	tnt_tuple_init(&args);
-	tnt_tuple(&args, "%d%d%s%s", 0, 333, "B", "C");
+	tnt_tuple(&args, "%s%d%s%s", "0", 333, "B", "C");
 	TT_ASSERT(tnt_call(&net, 0, "box.insert", &args) > 0);
 	TT_ASSERT(tnt_flush(&net) > 0);
 	tnt_tuple_free(&args);
@@ -701,7 +701,7 @@ static void tt_tnt_net_call_na(struct tt_test *test) {
 	while (tnt_next(&i)) {
 		struct tnt_reply *r = TNT_IREPLY_PTR(&i);
 		TT_ASSERT(r->code != 0);
-		TT_ASSERT(strcmp(r->error, "Illegal parameters, tuple must have all indexed fields") == 0);
+		TT_ASSERT(strstr(r->error, "box.pack") != NULL);
 	}
 	tnt_iter_free(&i);
 }
@@ -810,7 +810,7 @@ static void tt_tnt_lex_ws(struct tt_test *test) {
 /* lex integer */
 static void tt_tnt_lex_int(struct tt_test *test) {
 	unsigned char sz[] = "\f\r\n 123 34\n\t\r56 888L56 2147483646 2147483647 "
-		             "-2147483648 -2147483649 72057594037927935";
+			     "-2147483648 -2147483649 72057594037927935";
 	struct tnt_lex l;
 	tnt_lex_init(&l, tnt_sql_keywords, sz, sizeof(sz) - 1);
 	struct tnt_tk *tk;
@@ -1119,7 +1119,7 @@ static void tt_tnt_sql_delete(struct tt_test *test) {
 /* sql call */
 static void tt_tnt_sql_call(struct tt_test *test) {
 	char *e = NULL;
-	char q[] = "call box.insert(0, 454, 'abc', 'cba')";
+	char q[] = "call box.insert('0', 454, 'abc', 'cba')";
 	TT_ASSERT(tnt_query(&net, q, sizeof(q) - 1, &e) == 0);
 	TT_ASSERT(tnt_flush(&net) > 0);
 	struct tnt_iter i;