[Tarantool-patches] [PATCH 3/3] tuple: rework updates to improve code extendibility

Konstantin Osipov kostja.osipov at gmail.com
Mon Nov 4 20:36:51 MSK 2019


* Vladislav Shpilevoy <v.shpilevoy at 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


More information about the Tarantool-patches mailing list