couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Adam Kocoloski <>
Subject Re: Tree::term() is really a tree()
Date Wed, 09 Mar 2011 15:03:28 GMT
On Mar 9, 2011, at 9:43 AM, Andrey Somov wrote:

> Hi all,
> I have found the following comment in the source (couch_db.hrl):
> % Tree::term() is really a tree(), but we don't want to require R13B04 yet
> -type branch() :: {Key::term(), Value::term(), Tree::term()}.
> Does it mean that CouchDB includes its own copy of gb_trees.erl ?
> Does it mean that CouchDB implements its own tree but the interface is
> identical to gb_trees.erl and it will be changed once R13B04 is required ?
> -
> Andrey

Hi Andrey, neither.  It simply means that the third element of a branch() is of type tree().
 The reason for comment is that recursive type specifications are not supported in Erlang/OTP
releases prior to R13B04, so I fell back to calling it a term() instead.

The tree() data structure being described is a custom data structure implemented entirely
in couch_key_tree.erl.  It's used to store document revision histories.  Best,

View raw message