Tarantool development patches archive
 help / color / mirror / Atom feed
From: Konstantin Osipov <kostja.osipov@gmail.com>
To: Vladislav Shpilevoy <v.shpilevoy@tarantool.org>
Cc: tarantool-patches@dev.tarantool.org
Subject: Re: [Tarantool-patches] [PATCH 3/3] tuple: rework updates to improve code extendibility
Date: Mon, 4 Nov 2019 20:36:51 +0300	[thread overview]
Message-ID: <20191104173651.GG29784@atlas> (raw)
In-Reply-To: <33c2b63341c834ba5c4ff1173065b753e7f21937.1572565151.git.v.shpilevoy@tarantool.org>

* Vladislav Shpilevoy <v.shpilevoy@tarantool.org> [19/11/01 09:55]:
> Before the patch update was implemented as a set of operations
> applicable for arrays only. It was ok until field names and JSON
> paths appearance, because tuple is array on the top level.
> 
> But now there are four reasons to allow more complex updates of
> tuple field internals via JSON paths:
> * tuple field access by JSON path is allowed so for consistency
>   JSON paths should be allowed in updates as well;
> * JSON indexes are supported. JSON update should be able to
>   change an indexed field without rewriting half of a tuple;
> * Tarantool is going to support documents in storage so JSON
>   path updates is one more step forward;
> * JSON updates are going to be faster than get + in-memory
>   Lua/connector update + replace (or update of a whole tuple
>   field).
> 
> The patch prepares current update code to be extended by updates
> of map, so named isolated 'bar' updates, and multilevel updates.
> 
> The concept is to build a tree of update objects. Each updates a
> scalar terminal value (leaf of that tree), or a complex object
> like array or map. In the latter case these objects contain >= 2
> children updates.
> 
> This organization allows to split update implementation into
> several independent files-modules for each update type. Next
> commits will introduce them one by one.

I am fine with this patch but could you really extract the code
split into a separate commit? 

I don't want to give minor comments on the changes you make
besides the split, like changes in the comments, within  the patch
that does the split.

Let's push the code split already.


-- 
Konstantin Osipov, Moscow, Russia

      reply	other threads:[~2019-11-04 17:36 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-31 23:43 [Tarantool-patches] [PATCH 0/3] JSON preparation part 5 Vladislav Shpilevoy
2019-10-31 23:43 ` [Tarantool-patches] [PATCH 1/3] tuple: move tuple_update into xrow_update/ folder Vladislav Shpilevoy
2019-11-04 17:26   ` Konstantin Osipov
2019-11-06 15:14     ` Vladislav Shpilevoy
2019-10-31 23:43 ` [Tarantool-patches] [PATCH 2/3] tuple: rename tuple_update_* to xrow_update_* Vladislav Shpilevoy
2019-11-04 17:26   ` Konstantin Osipov
2019-10-31 23:43 ` [Tarantool-patches] [PATCH 3/3] tuple: rework updates to improve code extendibility Vladislav Shpilevoy
2019-11-04 17:36   ` Konstantin Osipov [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191104173651.GG29784@atlas \
    --to=kostja.osipov@gmail.com \
    --cc=tarantool-patches@dev.tarantool.org \
    --cc=v.shpilevoy@tarantool.org \
    --subject='Re: [Tarantool-patches] [PATCH 3/3] tuple: rework updates to improve code extendibility' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

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