diff --git a/src/box/tuple_compare.cc b/src/box/tuple_compare.cc
index db4bdfd92b9ffcd852bfa24d720db1363013c571..1d1ab8711ec12a3a090ebfb852be302a154ffd86 100644
--- a/src/box/tuple_compare.cc
+++ b/src/box/tuple_compare.cc
@@ -509,16 +509,16 @@ tuple_compare_slowpath(const struct tuple *tuple_a, const struct tuple *tuple_b,
 		end = part + key_def->part_count;
 
 	for (; part < end; part++) {
-		if (!has_json_paths) {
-			field_a = tuple_field_raw(format_a, tuple_a_raw,
-						  field_map_a, part->fieldno);
-			field_b = tuple_field_raw(format_b, tuple_b_raw,
-						  field_map_b, part->fieldno);
-		} else {
+		if (has_json_paths) {
 			field_a = tuple_field_by_part_raw(format_a, tuple_a_raw,
 							  field_map_a, part);
 			field_b = tuple_field_by_part_raw(format_b, tuple_b_raw,
 							  field_map_b, part);
+		} else {
+			field_a = tuple_field_raw(format_a, tuple_a_raw,
+						  field_map_a, part->fieldno);
+			field_b = tuple_field_raw(format_b, tuple_b_raw,
+						  field_map_b, part->fieldno);
 		}
 		assert(has_optional_parts ||
 		       (field_a != NULL && field_b != NULL));
@@ -566,16 +566,16 @@ tuple_compare_slowpath(const struct tuple *tuple_a, const struct tuple *tuple_b,
 	 */
 	end = key_def->parts + key_def->part_count;
 	for (; part < end; ++part) {
-		if (!has_json_paths) {
-			field_a = tuple_field_raw(format_a, tuple_a_raw,
-						  field_map_a, part->fieldno);
-			field_b = tuple_field_raw(format_b, tuple_b_raw,
-						  field_map_b, part->fieldno);
-		} else {
+		if (has_json_paths) {
 			field_a = tuple_field_by_part_raw(format_a, tuple_a_raw,
 							  field_map_a, part);
 			field_b = tuple_field_by_part_raw(format_b, tuple_b_raw,
 							  field_map_b, part);
+		} else {
+			field_a = tuple_field_raw(format_a, tuple_a_raw,
+						  field_map_a, part->fieldno);
+			field_b = tuple_field_raw(format_b, tuple_b_raw,
+						  field_map_b, part->fieldno);
 		}
 		/*
 		 * Extended parts are primary, and they can not
@@ -608,12 +608,12 @@ tuple_compare_with_key_slowpath(const struct tuple *tuple, const char *key,
 	enum mp_type a_type, b_type;
 	if (likely(part_count == 1)) {
 		const char *field;
-		if (!has_json_paths) {
-			field = tuple_field_raw(format, tuple_raw, field_map,
-						part->fieldno);
-		} else {
+		if (has_json_paths) {
 			field = tuple_field_by_part_raw(format, tuple_raw,
 							field_map, part);
+		} else {
+			field = tuple_field_raw(format, tuple_raw, field_map,
+						part->fieldno);
 		}
 		if (! is_nullable) {
 			return tuple_compare_field(field, key, part->type,
@@ -639,12 +639,12 @@ tuple_compare_with_key_slowpath(const struct tuple *tuple, const char *key,
 	int rc;
 	for (; part < end; ++part, mp_next(&key)) {
 		const char *field;
-		if (!has_json_paths) {
-			field = tuple_field_raw(format, tuple_raw, field_map,
-						part->fieldno);
-		} else {
+		if (has_json_paths) {
 			field = tuple_field_by_part_raw(format, tuple_raw,
 							field_map, part);
+		} else {
+			field = tuple_field_raw(format, tuple_raw, field_map,
+						part->fieldno);
 		}
 		if (! is_nullable) {
 			rc = tuple_compare_field(field, key, part->type,