From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Mon, 4 Feb 2019 15:56:03 +0300 From: Vladimir Davydov Subject: Re: [PATCH v9 5/6] box: introduce offset_slot cache in key_part Message-ID: <20190204125603.yi3ybmvwif2pki6d@esperanza> References: <709ad0bac8976ed78bcf0ce418567b2e3a378a77.1549187339.git.kshcherbatov@tarantool.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <709ad0bac8976ed78bcf0ce418567b2e3a378a77.1549187339.git.kshcherbatov@tarantool.org> To: Kirill Shcherbatov Cc: tarantool-patches@freelists.org List-ID: On Sun, Feb 03, 2019 at 01:20:25PM +0300, Kirill Shcherbatov wrote: > diff --git a/src/box/tuple_format.c b/src/box/tuple_format.c > index d9c408495..fc152cbbc 100644 > --- a/src/box/tuple_format.c > +++ b/src/box/tuple_format.c > @@ -41,6 +41,7 @@ struct tuple_format **tuple_formats; > static intptr_t recycled_format_ids = FORMAT_ID_NIL; > > static uint32_t formats_size = 0, formats_capacity = 0; > +static uint64_t formats_epoch = 0; > > /** > * Find in format1::fields the field by format2_field's JSON path. > @@ -623,6 +624,7 @@ tuple_format_alloc(struct key_def * const *keys, uint16_t key_count, > format->index_field_count = index_field_count; > format->exact_field_count = 0; > format->min_field_count = 0; > + format->epoch = 0; > return format; > error: > tuple_format_destroy_fields(format); > @@ -672,6 +674,7 @@ tuple_format_reuse(struct tuple_format **p_format) > tuple_format_destroy(format); > free(format); > *p_format = *entry; > + (*p_format)->epoch = ++formats_epoch; Why? Can I remove it? > return true; > } > return false; > @@ -740,6 +743,7 @@ tuple_format_new(struct tuple_format_vtab *vtab, void *engine, > goto err; > if (tuple_format_reuse(&format)) > return format; > + format->epoch = ++formats_epoch; Can I move it above the call to tuple_format_create, where other tuple_format fields are initialized?