diff --git a/src/box/vinyl.c b/src/box/vinyl.c index 21a9388f587afa55c71cf2038b93153cab7de15d..c142df34fb703ceface2b83c708116d64719ccee 100644 --- a/src/box/vinyl.c +++ b/src/box/vinyl.c @@ -99,7 +99,7 @@ struct vy_env { struct mempool cursor_pool; }; -static inline struct srzone * +static struct srzone * sr_zoneof(struct vy_env *r); struct vy_buf { @@ -111,7 +111,7 @@ struct vy_buf { char *e; }; -static inline void +static void vy_buf_create(struct vy_buf *b) { b->s = NULL; @@ -119,7 +119,7 @@ vy_buf_create(struct vy_buf *b) b->e = NULL; } -static inline void +static void vy_buf_destroy(struct vy_buf *b) { if (unlikely(b->s == NULL)) @@ -130,22 +130,17 @@ vy_buf_destroy(struct vy_buf *b) b->e = NULL; } -static inline size_t +static size_t vy_buf_size(struct vy_buf *b) { return b->e - b->s; } -static inline size_t +static size_t vy_buf_used(struct vy_buf *b) { return b->p - b->s; } -static inline size_t -vy_buf_unused(struct vy_buf *b) { - return b->e - b->p; -} - -static inline int +static int vy_buf_ensure(struct vy_buf *b, size_t size) { if (likely(b->e - b->p >= (ptrdiff_t)size)) @@ -175,13 +170,13 @@ vy_buf_ensure(struct vy_buf *b, size_t size) return 0; } -static inline void +static void vy_buf_advance(struct vy_buf *b, size_t size) { b->p += size; } -static inline int +static int vy_buf_add(struct vy_buf *b, void *buf, size_t size) { int rc = vy_buf_ensure(b, size); @@ -192,13 +187,13 @@ vy_buf_add(struct vy_buf *b, void *buf, size_t size) return 0; } -static inline int +static int vy_buf_in(struct vy_buf *b, void *v) { assert(b->s != NULL); return (char*)v >= b->s && (char*)v < b->p; } -static inline void* +static void* vy_buf_at(struct vy_buf *b, int size, int i) { return b->s + size * i; } @@ -222,13 +217,13 @@ vy_quota_delete(struct vy_quota*); static void vy_quota_enable(struct vy_quota*); -static inline int64_t +static int64_t vy_quota_used(struct vy_quota *q) { return q->used; } -static inline int +static int vy_quota_used_percent(struct vy_quota *q) { if (q->limit == 0) @@ -259,7 +254,7 @@ struct vy_bufiter { void *v; }; -static inline void +static void vy_bufiter_open(struct vy_bufiter *bi, struct vy_buf *buf, int vsize) { bi->buf = buf; @@ -269,13 +264,13 @@ vy_bufiter_open(struct vy_bufiter *bi, struct vy_buf *buf, int vsize) bi->v = NULL; } -static inline int +static int vy_bufiter_has(struct vy_bufiter *bi) { return bi->v != NULL; } -static inline void* +static void* vy_bufiterref_get(struct vy_bufiter *bi) { if (unlikely(bi->v == NULL)) @@ -283,7 +278,7 @@ vy_bufiterref_get(struct vy_bufiter *bi) return *(void**)bi->v; } -static inline void +static void vy_bufiter_next(struct vy_bufiter *bi) { if (unlikely(bi->v == NULL)) @@ -301,7 +296,7 @@ struct vy_avg { char sz[32]; }; -static inline void +static void vy_avg_update(struct vy_avg *a, uint32_t v) { a->count++; @@ -313,7 +308,7 @@ vy_avg_update(struct vy_avg *a, uint32_t v) a->max = v; } -static inline void +static void vy_avg_prepare(struct vy_avg *a) { snprintf(a->sz, sizeof(a->sz), "%"PRIu32" %"PRIu32" %.1f", @@ -406,7 +401,7 @@ struct vy_stat { struct vy_avg cursor_ops; }; -static inline struct vy_stat * +static struct vy_stat * vy_stat_new() { struct vy_stat *s = calloc(1, sizeof(*s)); @@ -417,13 +412,13 @@ vy_stat_new() return s; } -static inline void +static void vy_stat_delete(struct vy_stat *s) { free(s); } -static inline void +static void vy_stat_prepare(struct vy_stat *s) { vy_avg_prepare(&s->get_read_disk); @@ -441,7 +436,7 @@ struct vy_stat_get { uint64_t read_latency; }; -static inline void +static void vy_stat_get(struct vy_stat *s, const struct vy_stat_get *statget) { s->get++; @@ -450,7 +445,7 @@ vy_stat_get(struct vy_stat *s, const struct vy_stat_get *statget) vy_avg_update(&s->get_latency, statget->read_latency); } -static inline void +static void vy_stat_tx(struct vy_stat *s, uint64_t start, uint32_t count, uint32_t write_count, bool is_rollback) { @@ -463,7 +458,7 @@ vy_stat_tx(struct vy_stat *s, uint64_t start, uint32_t count, vy_avg_update(&s->tx_latency, diff); } -static inline void +static void vy_stat_cursor(struct vy_stat *s, uint64_t start, int ops) { uint64_t diff = clock_monotonic64() - start; @@ -483,7 +478,7 @@ struct srzonemap { struct srzone zones[11]; }; -static inline void +static void sr_zonemap_set(struct srzonemap *m, uint32_t percent, struct srzone *z) { if (unlikely(percent > 100)) @@ -494,7 +489,7 @@ sr_zonemap_set(struct srzonemap *m, uint32_t percent, struct srzone *z) snprintf(m->zones[p].name, sizeof(m->zones[p].name), "%d", percent); } -static inline struct srzone* +static struct srzone* sr_zonemap(struct srzonemap *m, uint32_t percent) { if (unlikely(percent > 100)) @@ -532,16 +527,16 @@ struct vy_tuple { char data[0]; }; -static inline uint32_t +static uint32_t vy_tuple_size(struct vy_tuple *v); static struct vy_tuple * vy_tuple_alloc(uint32_t size); -static inline const char * +static const char * vy_tuple_key_part(const char *tuple_data, uint32_t part_id); -static inline int +static int vy_tuple_compare(const char *tuple_data_a, const char *tuple_data_b, const struct key_def *key_def); @@ -564,7 +559,7 @@ vy_tuple_is_not_found(struct vy_tuple *tuple) static struct vy_tuple * vy_tuple_extract_key_raw(struct vy_index *index, const char *tuple); -struct PACKED svmergesrc { +struct svmergesrc { struct vy_iter *i; struct vy_iter src; uint8_t dup; @@ -577,7 +572,7 @@ struct svmerge { struct vy_buf buf; }; -static inline void +static void sv_mergeinit(struct svmerge *m, struct vy_index *index, struct key_def *key_def) { @@ -586,13 +581,13 @@ sv_mergeinit(struct svmerge *m, struct vy_index *index, m->key_def = key_def; } -static inline int +static int sv_mergeprepare(struct svmerge *m, int count) { return vy_buf_ensure(&m->buf, sizeof(struct svmergesrc) * count); } -static inline void +static void sv_mergefree(struct svmerge *m) { struct svmergesrc *beg = (struct svmergesrc *)m->buf.s; @@ -602,7 +597,7 @@ sv_mergefree(struct svmerge *m) vy_buf_destroy(&m->buf); } -static inline void +static void sv_mergereset(struct svmerge *m) { struct svmergesrc *beg = (struct svmergesrc *)m->buf.s; @@ -612,7 +607,7 @@ sv_mergereset(struct svmerge *m) m->buf.p = m->buf.s; } -static inline struct svmergesrc* +static struct svmergesrc* sv_mergeadd(struct svmerge *m, struct vy_iter *i) { assert(m->buf.p < m->buf.e); @@ -642,14 +637,14 @@ struct svmergeiter { struct svmergesrc *v; }; -static inline void +static void sv_mergeiter_dupreset(struct svmergeiter *i, struct svmergesrc *pos) { for (struct svmergesrc *src = i->src; src != pos; src++) src->dup = 0; } -static inline void +static void sv_mergeiter_next(struct svmergeiter *im) { int direction = 0; @@ -701,7 +696,7 @@ sv_mergeiter_next(struct svmergeiter *im) im->v = found_src; } -static inline int +static int sv_mergeiter_open(struct svmergeiter *im, struct svmerge *m, enum vy_order o) { im->merge = m; @@ -713,13 +708,13 @@ sv_mergeiter_open(struct svmergeiter *im, struct svmerge *m, enum vy_order o) return 0; } -static inline int +static int sv_mergeiter_has(struct svmergeiter *im) { return im->v != NULL; } -static inline struct vy_tuple * +static struct vy_tuple * sv_mergeiter_get(struct svmergeiter *im) { if (unlikely(im->v == NULL)) @@ -727,7 +722,7 @@ sv_mergeiter_get(struct svmergeiter *im) return vy_iter_get(im->v->i); } -static inline uint32_t +static uint32_t sv_mergeisdup(struct svmergeiter *im) { assert(im->v != NULL); @@ -750,7 +745,7 @@ static struct vy_tuple * vy_apply_upsert(struct vy_tuple *upsert, struct vy_tuple *object, struct vy_index *index, bool suppress_error); -static inline int +static int sv_readiter_upsert(struct svreaditer *i) { assert(i->upsert_tuple == NULL); @@ -795,7 +790,7 @@ sv_readiter_upsert(struct svreaditer *i) return 0; } -static inline void +static void sv_readiter_next(struct svreaditer *im) { if (im->upsert_tuple != NULL) { @@ -837,7 +832,7 @@ sv_readiter_next(struct svreaditer *im) } } -static inline void +static void sv_readiter_forward(struct svreaditer *im) { if (im->next) @@ -856,7 +851,7 @@ sv_readiter_forward(struct svreaditer *im) } } -static inline int +static int sv_readiter_open(struct svreaditer *im, struct svmergeiter *merge, int64_t vlsn, int save_delete) { @@ -872,7 +867,7 @@ sv_readiter_open(struct svreaditer *im, struct svmergeiter *merge, return 0; } -static inline void +static void sv_readiter_close(struct svreaditer *im) { if (im->upsert_tuple != NULL) { @@ -881,7 +876,7 @@ sv_readiter_close(struct svreaditer *im) } } -static inline struct vy_tuple * +static struct vy_tuple * sv_readiter_get(struct svreaditer *im) { return im->v; @@ -900,7 +895,7 @@ struct svwriteiter { struct vy_tuple *upsert_tuple; }; -static inline int +static int sv_writeiter_upsert(struct svwriteiter *i) { assert(i->upsert_tuple == NULL); @@ -949,7 +944,7 @@ sv_writeiter_upsert(struct svwriteiter *i) return 0; } -static inline void +static void sv_writeiter_next(struct svwriteiter *im) { if (im->upsert_tuple != NULL) { @@ -1019,7 +1014,7 @@ sv_writeiter_next(struct svwriteiter *im) } } -static inline int +static int sv_writeiter_open(struct svwriteiter *im, struct svmergeiter *merge, int64_t vlsn, int save_delete, int save_upsert) @@ -1038,7 +1033,7 @@ sv_writeiter_open(struct svwriteiter *im, struct svmergeiter *merge, return 0; } -static inline void +static void sv_writeiter_close(struct svwriteiter *im) { if (im->upsert_tuple != NULL) { @@ -1047,19 +1042,19 @@ sv_writeiter_close(struct svwriteiter *im) } } -static inline int +static int sv_writeiter_has(struct svwriteiter *im) { return im->v != NULL; } -static inline struct vy_tuple * +static struct vy_tuple * sv_writeiter_get(struct svwriteiter *im) { return im->v; } -static inline int +static int sv_writeiter_is_duplicate(struct svwriteiter *im) { assert(im->v != NULL); @@ -1196,7 +1191,7 @@ vy_mem_delete(struct vy_mem *index) free(index); } -static inline int +static int vy_mem_set(struct vy_mem *index, struct vy_tuple *v) { /* see struct vy_mem comments */ @@ -1534,7 +1529,7 @@ struct vy_cursor { }; -static inline struct txv * +static struct txv * txv_new(struct vy_index *index, struct vy_tuple *tuple, struct vy_tx *tx) { struct txv *v = malloc(sizeof(struct txv)); @@ -1551,14 +1546,14 @@ txv_new(struct vy_index *index, struct vy_tuple *tuple, struct vy_tx *tx) return v; } -static inline void +static void txv_delete(struct txv *v) { vy_tuple_unref(v->tuple); free(v); } -static inline void +static void txv_abort(struct txv *v) { v->tx->is_aborted = true; @@ -1806,7 +1801,7 @@ vy_tx_track(struct vy_tx *tx, struct vy_index *index, return 0; } -static inline void +static void tx_manager_end(struct tx_manager *m, struct vy_tx *tx) { bool was_oldest = tx == tx_tree_first(&m->tree); @@ -1851,7 +1846,7 @@ struct vy_page { uint32_t refs; }; -static inline void +static void vy_page_init(struct vy_page *p, struct vy_page_info *info, char *data) { p->info = info; @@ -1859,14 +1854,14 @@ vy_page_init(struct vy_page *p, struct vy_page_info *info, char *data) p->refs = 1; } -static inline struct vy_tuple_info* +static struct vy_tuple_info* sd_pagev(struct vy_page *p, uint32_t pos) { assert(pos < p->info->count); return (struct vy_tuple_info*)(p->data + sizeof(struct vy_tuple_info) * pos); } -static inline void* +static void* sd_pagepointer(struct vy_page *p, struct vy_tuple_info *v) { assert((sizeof(struct vy_tuple_info) * p->info->count) + v->offset <= @@ -1875,13 +1870,13 @@ sd_pagepointer(struct vy_page *p, struct vy_tuple_info *v) + v->offset; } -static inline char * +static char * vy_run_index_min_key(struct vy_run_index *i, struct vy_page_info *p) { return i->minmax.s + p->min_key_offset; } -static inline void +static void vy_run_index_init(struct vy_run_index *i) { vy_buf_create(&i->pages); @@ -1889,14 +1884,14 @@ vy_run_index_init(struct vy_run_index *i) memset(&i->info, 0, sizeof(i->info)); } -static inline void +static void vy_run_index_destroy(struct vy_run_index *i) { vy_buf_destroy(&i->pages); vy_buf_destroy(&i->minmax); } -static inline struct vy_page_info * +static struct vy_page_info * vy_run_index_get_page(struct vy_run_index *i, int pos) { assert(pos >= 0); @@ -1905,13 +1900,13 @@ vy_run_index_get_page(struct vy_run_index *i, int pos) vy_buf_at(&i->pages, sizeof(struct vy_page_info), pos); } -static inline struct vy_page_info * +static struct vy_page_info * vy_run_index_first_page(struct vy_run_index *i) { return vy_run_index_get_page(i, 0); } -static inline uint32_t +static uint32_t vy_run_index_total(struct vy_run_index *i) { if (unlikely(i->pages.s == NULL)) @@ -1919,7 +1914,7 @@ vy_run_index_total(struct vy_run_index *i) return i->info.total; } -static inline uint32_t +static uint32_t vy_run_index_size(struct vy_run_index *i) { return sizeof(i->info) + @@ -1932,7 +1927,7 @@ vy_index_dump_range_index(struct vy_index *index); static int vy_index_checkpoint_range_index(struct vy_index *index, int64_t lsn); -static inline struct vy_run * +static struct vy_run * vy_run_new() { struct vy_run *run = (struct vy_run *)malloc(sizeof(struct vy_run)); @@ -1948,7 +1943,7 @@ vy_run_new() return run; } -static inline void +static void vy_run_delete(struct vy_run *run) { vy_run_index_destroy(&run->index); @@ -2102,14 +2097,14 @@ vy_range_mem_min_lsn(struct vy_range *range) return min_lsn; } -static inline int +static int vy_range_cmp(struct vy_range *range, void *key, struct key_def *key_def) { assert(range->min_key != NULL); return vy_tuple_compare(range->min_key->data, key, key_def); } -static inline int +static int vy_range_cmpnode(struct vy_range *n1, struct vy_range *n2, struct key_def *key_def) { if (n1 == n2) @@ -2118,7 +2113,7 @@ vy_range_cmpnode(struct vy_range *n1, struct vy_range *n2, struct key_def *key_d return vy_tuple_compare(n1->min_key->data, n2->min_key->data, key_def); } -static inline uint64_t +static uint64_t vy_range_size(struct vy_range *range) { uint64_t size = 0; @@ -2201,7 +2196,7 @@ vy_range_tree_key_cmp(vy_range_tree_t *rbtree, return (-vy_range_cmp(b, a->data, key_def)); } -static inline void +static void vy_index_delete(struct vy_index *index); struct vy_rangeiter { @@ -2212,7 +2207,7 @@ struct vy_rangeiter { int key_size; }; -static inline void +static void vy_rangeiter_open(struct vy_rangeiter *itr, struct vy_index *index, enum vy_order order, char *key, int key_size) { @@ -2252,13 +2247,13 @@ vy_rangeiter_open(struct vy_rangeiter *itr, struct vy_index *index, assert(itr->cur_range != NULL); } -static inline struct vy_range * +static struct vy_range * vy_rangeiter_get(struct vy_rangeiter *ii) { return ii->cur_range; } -static inline void +static void vy_rangeiter_next(struct vy_rangeiter *ii) { switch (ii->order) { @@ -2648,7 +2643,7 @@ vy_range_redistribute(struct vy_index *index, struct vy_range *range, return 0; } -static inline void +static void vy_range_redistribute_set(struct vy_index *index, uint64_t now, struct vy_tuple *v) { /* match range */ @@ -2708,7 +2703,7 @@ vy_range_splitfree(struct rlist *result) return 0; } -static inline int +static int vy_range_split(struct vy_index *index, struct svmergeiter *merge_iter, uint64_t size_node, @@ -2777,7 +2772,7 @@ vy_range_new(struct vy_index *index) return range; } -static inline int +static int vy_range_close(struct vy_range *range) { int rcret = 0; @@ -2789,7 +2784,7 @@ vy_range_close(struct vy_range *range) return rcret; } -static inline int +static int vy_range_recover(struct vy_range *range) { int fd = range->fd; @@ -2872,7 +2867,7 @@ vy_range_create(struct vy_range *range, struct vy_index *index) return -1; } -static inline void +static void vy_range_delete_runs(struct vy_range *range) { struct vy_run *p = range->run; @@ -3346,7 +3341,7 @@ struct vy_task { struct stailq_entry link; }; -static inline struct vy_task * +static struct vy_task * vy_task_new(struct mempool *pool, struct vy_index *index, const struct vy_task_ops *ops) { @@ -3362,7 +3357,7 @@ vy_task_new(struct mempool *pool, struct vy_index *index, return task; } -static inline void +static void vy_task_delete(struct mempool *pool, struct vy_task *task) { if (task->index) { @@ -3670,7 +3665,7 @@ vy_task_drop_new(struct mempool *pool, struct vy_index *index) #define HEAP_NAME vy_dump_heap -static inline int +static int heap_dump_less(struct heap_node *a, struct heap_node *b) { const struct vy_range *left = @@ -3689,7 +3684,7 @@ heap_dump_less(struct heap_node *a, struct heap_node *b) #define HEAP_NAME vy_compact_heap -static inline int +static int heap_compact_less(struct heap_node *a, struct heap_node *b) { const struct vy_range *left = @@ -3886,7 +3881,7 @@ vy_scheduler_remove_range(struct vy_scheduler *scheduler, range->nodecompact.pos = UINT32_MAX; } -static inline int +static int vy_scheduler_peek_checkpoint(struct vy_scheduler *scheduler, int64_t checkpoint_lsn, struct vy_task **ptask) { @@ -3913,7 +3908,7 @@ vy_scheduler_peek_checkpoint(struct vy_scheduler *scheduler, return 0; /* nothing to do */ } -static inline int +static int vy_scheduler_peek_dump(struct vy_scheduler *scheduler, struct vy_task **ptask) { /* try to peek a range with a biggest in-memory index */ @@ -3936,7 +3931,7 @@ vy_scheduler_peek_dump(struct vy_scheduler *scheduler, struct vy_task **ptask) return 0; /* nothing to do */ } -static inline int +static int vy_scheduler_peek_age(struct vy_scheduler *scheduler, uint32_t max_age, struct vy_task **ptask) { @@ -3967,7 +3962,7 @@ vy_scheduler_peek_age(struct vy_scheduler *scheduler, uint32_t max_age, return 0; /* nothing to do */ } -static inline int +static int vy_scheduler_peek_compact(struct vy_scheduler *scheduler, uint32_t run_count, struct vy_task **ptask) { @@ -3992,7 +3987,7 @@ vy_scheduler_peek_compact(struct vy_scheduler *scheduler, uint32_t run_count, return 0; /* nothing to do */ } -static inline int +static int vy_scheduler_peek_shutdown(struct vy_scheduler *scheduler, struct vy_index *index, struct vy_task **ptask) { @@ -4486,7 +4481,7 @@ static void vy_conf_delete(struct vy_conf *c) free(c); } -static inline struct srzone * +static struct srzone * sr_zoneof(struct vy_env *env) { int p = vy_quota_used_percent(env->quota); @@ -4499,7 +4494,7 @@ vy_index_read(struct vy_index*, struct vy_tuple*, enum vy_order order, /** {{{ Introspection */ -static inline struct vy_info_node * +static struct vy_info_node * vy_info_append(struct vy_info_node *root, const char *key) { assert(root->childs_n < root->childs_cap); @@ -4510,7 +4505,7 @@ vy_info_append(struct vy_info_node *root, const char *key) return node; } -static inline void +static void vy_info_append_u32(struct vy_info_node *root, const char *key, uint32_t value) { struct vy_info_node *node = vy_info_append(root, key); @@ -4518,7 +4513,7 @@ vy_info_append_u32(struct vy_info_node *root, const char *key, uint32_t value) node->val_type = VINYL_U32; } -static inline void +static void vy_info_append_u64(struct vy_info_node *root, const char *key, uint64_t value) { struct vy_info_node *node = vy_info_append(root, key); @@ -4526,7 +4521,7 @@ vy_info_append_u64(struct vy_info_node *root, const char *key, uint64_t value) node->val_type = VINYL_U64; } -static inline void +static void vy_info_append_str(struct vy_info_node *root, const char *key, const char *value) { @@ -4535,7 +4530,7 @@ vy_info_append_str(struct vy_info_node *root, const char *key, node->val_type = VINYL_STRING; } -static inline int +static int vy_info_reserve(struct vy_info *info, struct vy_info_node *node, int size) { node->childs = region_alloc(&info->allocator, @@ -4550,7 +4545,7 @@ vy_info_reserve(struct vy_info *info, struct vy_info_node *node, int size) return 0; } -static inline int +static int vy_info_append_global(struct vy_info *info, struct vy_info_node *root) { struct vy_info_node *node = vy_info_append(root, "vinyl"); @@ -4561,7 +4556,7 @@ vy_info_append_global(struct vy_info *info, struct vy_info_node *root) return 0; } -static inline int +static int vy_info_append_memory(struct vy_info *info, struct vy_info_node *root) { struct vy_info_node *node = vy_info_append(root, "memory"); @@ -4573,7 +4568,7 @@ vy_info_append_memory(struct vy_info *info, struct vy_info_node *root) return 0; } -static inline int +static int vy_info_append_compaction(struct vy_info *info, struct vy_info_node *root) { int childs_cnt = 0; @@ -4596,7 +4591,7 @@ vy_info_append_compaction(struct vy_info *info, struct vy_info_node *root) return 0; } -static inline int +static int vy_info_append_scheduler(struct vy_info *info, struct vy_info_node *root) { struct vy_info_node *node = vy_info_append(root, "scheduler"); @@ -4610,7 +4605,7 @@ vy_info_append_scheduler(struct vy_info *info, struct vy_info_node *root) return 0; } -static inline int +static int vy_info_append_performance(struct vy_info *info, struct vy_info_node *root) { struct vy_info_node *node = vy_info_append(root, "performance"); @@ -4638,7 +4633,7 @@ vy_info_append_performance(struct vy_info *info, struct vy_info_node *root) return 0; } -static inline int +static int vy_info_append_metric(struct vy_info *info, struct vy_info_node *root) { struct vy_info_node *node = vy_info_append(root, "metric"); @@ -4649,7 +4644,7 @@ vy_info_append_metric(struct vy_info *info, struct vy_info_node *root) return 0; } -static inline int +static int vy_info_append_indices(struct vy_info *info, struct vy_info_node *root) { struct vy_index *o; @@ -5135,7 +5130,7 @@ vy_index_new(struct vy_env *e, struct key_def *key_def, return NULL; } -static inline void +static void vy_index_delete(struct vy_index *index) { read_set_iter(&index->read_set, NULL, read_set_delete_cb, NULL); @@ -5165,7 +5160,7 @@ enum { VY_TUPLE_KEY_MISSING = UINT32_MAX, }; -static inline uint32_t +static uint32_t vy_tuple_size(struct vy_tuple *v) { return sizeof(struct vy_tuple) + v->size; @@ -5395,7 +5390,7 @@ vy_tuple_unref(struct vy_tuple *tuple) /** * Extract key from tuple by part_id */ -static inline const char * +static const char * vy_tuple_key_part(const char *tuple_data, uint32_t part_id) { uint32_t *offsets = (uint32_t *) tuple_data; @@ -5423,7 +5418,7 @@ vy_tuple_key_is_full(const char *tuple_data, const struct key_def *key_def) /** * Compare two tuples */ -static inline int +static int vy_tuple_compare(const char *tuple_data_a, const char *tuple_data_b, const struct key_def *key_def) { @@ -5611,7 +5606,7 @@ vy_apply_upsert(struct vy_tuple *new_tuple, struct vy_tuple *old_tuple, /* }}} Upsert */ -static inline void +static void vy_tx_set(struct vy_tx *tx, struct vy_index *index, struct vy_tuple *tuple, uint8_t flags) {