[PATCH v2 14/14] tuple_format: zap min_tuple_size

Vladimir Davydov vdavydov.dev at gmail.com
Wed Mar 13 11:53:00 MSK 2019


It had been used only in Vinyl's vy_stmt_new_surrogate_from_key, which
was deleted by the previous patches, so we can drop it as well.
---
 src/box/tuple_format.c | 40 ----------------------------------------
 src/box/tuple_format.h |  5 -----
 2 files changed, 45 deletions(-)

diff --git a/src/box/tuple_format.c b/src/box/tuple_format.c
index 4439ce3e..22a84af8 100644
--- a/src/box/tuple_format.c
+++ b/src/box/tuple_format.c
@@ -441,7 +441,6 @@ tuple_format_create(struct tuple_format *format, struct key_def * const *keys,
 			 "malloc", "required field bitmap");
 		return -1;
 	}
-	format->min_tuple_size = mp_sizeof_array(format->index_field_count);
 	struct tuple_field *field;
 	json_tree_foreach_entry_preorder(field, &format->fields.root,
 					 struct tuple_field, token) {
@@ -453,44 +452,6 @@ tuple_format_create(struct tuple_format *format, struct key_def * const *keys,
 		if (json_token_is_leaf(&field->token) &&
 		    !tuple_field_is_nullable(field))
 			bit_set(format->required_fields, field->id);
-
-		/*
-		 * Update format::min_tuple_size by field.
-		 * Skip fields not involved in index.
-		 */
-		if (!field->is_key_part)
-			continue;
-		if (field->token.type == JSON_TOKEN_NUM) {
-			/*
-			 * Account a gap between omitted array
-			 * items.
-			 */
-			struct json_token **neighbors =
-				field->token.parent->children;
-			for (int i = field->token.sibling_idx - 1; i >= 0; i--) {
-				if (neighbors[i] != NULL &&
-				    json_tree_entry(neighbors[i],
-						    struct tuple_field,
-						    token)->is_key_part)
-					break;
-				format->min_tuple_size += mp_sizeof_nil();
-			}
-		} else {
-			/* Account a key string for map member. */
-			assert(field->token.type == JSON_TOKEN_STR);
-			format->min_tuple_size +=
-				mp_sizeof_str(field->token.len);
-		}
-		int max_child_idx = field->token.max_child_idx;
-		if (json_token_is_leaf(&field->token)) {
-			format->min_tuple_size += mp_sizeof_nil();
-		} else if (field->type == FIELD_TYPE_ARRAY) {
-			format->min_tuple_size +=
-				mp_sizeof_array(max_child_idx + 1);
-		} else if (field->type == FIELD_TYPE_MAP) {
-			format->min_tuple_size +=
-				mp_sizeof_map(max_child_idx + 1);
-		}
 	}
 	format->hash = tuple_format_hash(format);
 	return 0;
@@ -623,7 +584,6 @@ tuple_format_alloc(struct key_def * const *keys, uint16_t key_count,
 	format->total_field_count = field_count;
 	format->required_fields = NULL;
 	format->fields_depth = 1;
-	format->min_tuple_size = 0;
 	format->refs = 0;
 	format->id = FORMAT_ID_NIL;
 	format->index_field_count = index_field_count;
diff --git a/src/box/tuple_format.h b/src/box/tuple_format.h
index 5c5fdbd3..22a0fb23 100644
--- a/src/box/tuple_format.h
+++ b/src/box/tuple_format.h
@@ -203,11 +203,6 @@ struct tuple_format {
 	 */
 	struct tuple_dictionary *dict;
 	/**
-	 * The size of a minimal tuple conforming to the format
-	 * and filled with nils.
-	 */
-	uint32_t min_tuple_size;
-	/**
 	 * A maximum depth of format::fields subtree.
 	 */
 	uint32_t fields_depth;
-- 
2.11.0




More information about the Tarantool-patches mailing list