From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id 2BE9827662 for ; Thu, 22 Aug 2019 17:15:59 -0400 (EDT) Received: from turing.freelists.org ([127.0.0.1]) by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id e4QrfIYJnPfH for ; Thu, 22 Aug 2019 17:15:59 -0400 (EDT) Received: from smtp16.mail.ru (smtp16.mail.ru [94.100.176.153]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTPS id 64B7926EA6 for ; Thu, 22 Aug 2019 17:15:58 -0400 (EDT) Subject: [tarantool-patches] Re: [PATCH 0/5] JSON update preparation From: Vladislav Shpilevoy References: Message-ID: <9d4fb1ba-2bca-26ab-f1b3-ae977ee95461@tarantool.org> Date: Thu, 22 Aug 2019 23:18:57 +0200 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: tarantool-patches-bounce@freelists.org Errors-to: tarantool-patches-bounce@freelists.org Reply-To: tarantool-patches@freelists.org List-Help: List-Unsubscribe: List-software: Ecartis version 1.0.0 List-Id: tarantool-patches List-Subscribe: List-Owner: List-post: List-Archive: To: tarantool-patches@freelists.org, Kirill Yukhin Hi! As you asked, I rebased it. But not on the latest master, because the latest one crashes. Nonetheless, conflicting part about decimals update is fixed, so once the master is stable, it should be pushable without new conflicts. On 14/07/2019 00:11, Vladislav Shpilevoy wrote: > The patchset is mainly about rope and its usage. Rope is a data structure > allowing to modify an array with memory overhead not depending on the array > size. Only on the number of modifications. It is used when there is a long > array of something, and a one wants to insert new elements, delete existing > ones, change their values, but do not rebuild the whole array each time. > > Rope is going to be one of the core data structures of the incoming JSON path > updates, and this patchset makes it faster and lighter. > > Branch: http://github.com/tarantool/tarantool/tree/gerold103/gh-1261-update-json-prepare > Issue: https://github.com/tarantool/tarantool/issues/1261 > > Vladislav Shpilevoy (5): > tuple: remove alloc and alloc_ctx args from update() > rope: make rope library macro template > tuple: relax struct tuple_update dependency on rope > int96: add a missing header > tuple: implement update by field name > > debian/copyright | 2 +- > src/box/errcode.h | 4 +- > src/box/lua/tuple.c | 10 +- > src/box/memtx_space.c | 27 +- > src/box/space.c | 26 +- > src/box/sql/insert.c | 3 +- > src/box/sql/resolve.c | 4 +- > src/box/sql/update.c | 2 +- > src/box/tuple.c | 18 +- > src/box/tuple_update.c | 292 +++++++++-------- > src/box/tuple_update.h | 25 +- > src/box/vinyl.c | 19 +- > src/box/vy_upsert.c | 31 +- > src/lib/bit/int96.h | 1 + > src/lib/salad/rope.c | 479 +++++----------------------- > src/lib/salad/rope.h | 617 +++++++++++++++++++++++++++++++----- > test/box/misc.result | 3 +- > test/box/update.result | 2 +- > test/engine/update.result | 67 ++++ > test/engine/update.test.lua | 28 ++ > test/engine/upsert.result | 2 +- > test/unit/column_mask.c | 33 +- > test/unit/rope.c | 1 - > test/unit/rope_avl.c | 1 - > test/unit/rope_basic.c | 1 - > test/unit/rope_common.h | 41 ++- > test/unit/rope_stress.c | 5 +- > 27 files changed, 993 insertions(+), 751 deletions(-) >