diff --git a/src/box/execute.c b/src/box/execute.c
index 894625c71f141f060f5e964763a09623023d899b..3c48982160657032ce90f367a9051e797c2018bf 100644
--- a/src/box/execute.c
+++ b/src/box/execute.c
@@ -283,8 +283,7 @@ xrow_decode_sql(const struct xrow_header *row, struct sql_request *request,
 			if (sql_bind_list_decode(request, value, region) != 0)
 				return -1;
 		} else {
-			request->sql_text =
-				mp_decode_str(&value, &request->sql_text_len);
+			request->sql_text = value;
 		}
 	}
 	if (request->sql_text == NULL) {
@@ -600,7 +599,8 @@ sql_prepare_and_execute(const struct sql_request *request,
 			struct sql_response *response, struct region *region)
 {
 	const char *sql = request->sql_text;
-	uint32_t len = request->sql_text_len;
+	uint32_t len;
+	sql = mp_decode_str(&sql, &len);
 	struct sqlite3_stmt *stmt;
 	sqlite3 *db = sql_get();
 	if (db == NULL) {
diff --git a/src/box/execute.h b/src/box/execute.h
index fa7820b0bd0ff5428b9c7ee23598bd4c1fa349e3..266566260ee0cc1c537955426f9151136caf0f04 100644
--- a/src/box/execute.h
+++ b/src/box/execute.h
@@ -57,8 +57,6 @@ struct xrow_header;
 struct sql_request {
 	/** SQL statement text. */
 	const char *sql_text;
-	/** Length of the SQL statement text. */
-	uint32_t sql_text_len;
 	/** Array of parameters. */
 	struct sql_bind *bind;
 	/** Length of the @bind. */