Tarantool development patches archive
 help / color / mirror / Atom feed
* [tarantool-patches] [PATCH] box: add tuple:size function
@ 2018-09-27 17:55 AlexeyIvushkin
  2018-10-03 14:20 ` [tarantool-patches] " Vladislav Shpilevoy
                   ` (2 more replies)
  0 siblings, 3 replies; 19+ messages in thread
From: AlexeyIvushkin @ 2018-09-27 17:55 UTC (permalink / raw)
  To: tarantool-patches; +Cc: Morgan-iv

From: Morgan-iv <ivushkinalex@gmail.com>

When operating with tuples, we only have tuple:bsize function
to get size of tuple. tuple:bsize returns only size of MessagePack
part of struct tuple, without tuple_meta. New function tuple:size
returns size of all tuple, with MessagePack and tuple_meta

Closes #2256
---
https://github.com/tarantool/tarantool/issues/2256
https://github.com/tarantool/tarantool/tree/Morgan-iv/gh-2256
 src/box/lua/tuple.c     | 10 ++++++++++
 src/box/lua/tuple.lua   |  1 +
 test/box/tuple.result   | 12 ++++++++++++
 test/box/tuple.test.lua |  6 ++++++
 4 files changed, 29 insertions(+)

diff --git a/src/box/lua/tuple.c b/src/box/lua/tuple.c
index 65660ce..1ae49d6 100644
--- a/src/box/lua/tuple.c
+++ b/src/box/lua/tuple.c
@@ -489,6 +489,15 @@ lbox_tuple_to_string(struct lua_State *L)
 	return 1;
 }
 
+static int
+lbox_tuple_size(struct lua_State *L)
+{
+	struct tuple *tuple = lua_checktuple(L, 1);
+	size_t size = tuple_size(tuple);
+	lua_pushinteger(L, size);
+	return 1;
+}
+
 void
 luaT_pushtuple(struct lua_State *L, box_tuple_t *tuple)
 {
@@ -506,6 +515,7 @@ static const struct luaL_Reg lbox_tuple_meta[] = {
 	{"__gc", lbox_tuple_gc},
 	{"tostring", lbox_tuple_to_string},
 	{"slice", lbox_tuple_slice},
+	{"size", lbox_tuple_size},
 	{"transform", lbox_tuple_transform},
 	{"tuple_to_map", lbox_tuple_to_map},
 	{"tuple_field_by_path", lbox_tuple_field_by_path},
diff --git a/src/box/lua/tuple.lua b/src/box/lua/tuple.lua
index 63ea73e..801ee3c 100644
--- a/src/box/lua/tuple.lua
+++ b/src/box/lua/tuple.lua
@@ -286,6 +286,7 @@ local methods = {
     ["update"]      = tuple_update;
     ["upsert"]      = tuple_upsert;
     ["bsize"]       = tuple_bsize;
+    ["size"]        = internal.tuple.size;
     ["tomap"]       = internal.tuple.tuple_to_map;
 }
 
diff --git a/test/box/tuple.result b/test/box/tuple.result
index e035cb9..418f5f8 100644
--- a/test/box/tuple.result
+++ b/test/box/tuple.result
@@ -186,6 +186,18 @@ t:bsize()
 ---
 - 5
 ...
+-- tuple:size()
+t = box.tuple.new('abc')
+---
+...
+t
+---
+- ['abc']
+...
+t:size()
+---
+- 15
+...
 --
 -- Test cases for #106 box.tuple.new fails on multiple items
 --
diff --git a/test/box/tuple.test.lua b/test/box/tuple.test.lua
index 9df978d..7f4e2b3 100644
--- a/test/box/tuple.test.lua
+++ b/test/box/tuple.test.lua
@@ -49,6 +49,12 @@ t = box.tuple.new('abc')
 t
 t:bsize()
 
+-- tuple:size()
+
+t = box.tuple.new('abc')
+t
+t:size()
+
 --
 -- Test cases for #106 box.tuple.new fails on multiple items
 --
-- 
2.7.4

^ permalink raw reply	[flat|nested] 19+ messages in thread
* [tarantool-patches] [PATCH 0/2] First part of SQLite error codes refactoring
@ 2018-10-02 20:50 AlexeyIvushkin
  2018-10-02 20:50 ` [tarantool-patches] [PATCH] box: add tuple:size function AlexeyIvushkin
  0 siblings, 1 reply; 19+ messages in thread
From: AlexeyIvushkin @ 2018-10-02 20:50 UTC (permalink / raw)
  To: tarantool-patches; +Cc: Morgan-iv

From: Morgan-iv <ivushkinalex@gmail.com>

These 2 patches are the beginning of SQLite error codes refactoring.
Both of them change implementation of affected error codes from 
define macro to enum statement, and remove codes that aren't returned
anywhere, but first also remove related function that aren't called
anywhere too. First patch affects SQLITE_IOERR_ codes, second - 
SQLITE_CONSTRAINT_ codes.
Final rename of all error codes affected in these 2 patches and
the next several patches in this branch will be applied after removing
all unused error codes and removing all found unused functions related
to affected SQLite error codes

Issue: https://github.com/tarantool/tarantool/issues/3315
Branch: https://github.com/tarantool/tarantool/tree/Morgan-iv/gh-3315

Morgan-iv (2):
  sql: refactor SQLITE_IOERR_ error codes
  sql: remove unused SQLITE_CONSTRAINT_ error codes

 src/box/sql/main.c      | 51 ----------------------------
 src/box/sql/os_unix.c   | 88 -------------------------------------------------
 src/box/sql/sqliteInt.h | 56 ++++++++++++-------------------
 3 files changed, 21 insertions(+), 174 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2018-10-18 18:15 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-09-27 17:55 [tarantool-patches] [PATCH] box: add tuple:size function AlexeyIvushkin
2018-10-03 14:20 ` [tarantool-patches] " Vladislav Shpilevoy
2018-10-03 15:05   ` Vladislav Shpilevoy
2018-10-05 10:23 ` [tarantool-patches] " Vladimir Davydov
2018-10-06 13:58   ` [tarantool-patches] " Vladislav Shpilevoy
2018-10-08 10:16     ` Vladimir Davydov
2018-10-10 10:25       ` Vladislav Shpilevoy
2018-10-16 18:21 ` Konstantin Osipov
2018-10-17  7:28   ` Alexander Turenko
2018-10-17 15:29     ` Konstantin Osipov
2018-10-17 15:50       ` Alexander Turenko
2018-10-18 18:11         ` Konstantin Osipov
2018-10-18 18:15           ` Alexander Turenko
2018-10-17 18:06       ` Vladislav Shpilevoy
2018-10-17 18:10         ` Vladislav Shpilevoy
2018-10-17 18:14         ` Konstantin Osipov
2018-10-17 18:20           ` Alexander Turenko
2018-10-17 20:36           ` Vladislav Shpilevoy
2018-10-02 20:50 [tarantool-patches] [PATCH 0/2] First part of SQLite error codes refactoring AlexeyIvushkin
2018-10-02 20:50 ` [tarantool-patches] [PATCH] box: add tuple:size function AlexeyIvushkin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox