diff --git a/src/box/alter.cc b/src/box/alter.cc
index 343ff1dd7e3e54cfa9bdca696d0e1e69a7991990..c713226de761fc2bdad1481446402d49771d02fb 100644
--- a/src/box/alter.cc
+++ b/src/box/alter.cc
@@ -368,6 +368,7 @@ space_def_new_from_tuple(struct tuple *tuple, uint32_t errcode)
 	if (def == NULL)
 		tnt_raise(OutOfMemory, size, "malloc", "def");
 	auto def_guard = make_scoped_guard([=] { space_def_delete(def); });
+	def->opts.sql = NULL;
 	memcpy(def->name, name, name_len);
 	def->name[name_len] = 0;
 	identifier_check_xc(def->name);
diff --git a/src/box/space_def.c b/src/box/space_def.c
index 5c84f20ef456a042798012c2c9ff87ce9a1f1d64..389ef3fd3d68e8d5f08c64d1ded906dcfe5f6f3d 100644
--- a/src/box/space_def.c
+++ b/src/box/space_def.c
@@ -53,6 +53,15 @@ space_def_dup(const struct space_def *src)
 		return NULL;
 	}
 	memcpy(ret, src, size);
+	if (src->opts.sql != NULL) {
+		ret->opts.sql = strdup(src->opts.sql);
+		if (ret->opts.sql == NULL) {
+			diag_set(OutOfMemory, strlen(src->opts.sql) + 1,
+				 "strdup", "ret->opts.sql");
+			free(ret);
+			return NULL;
+		}
+	}
 	return ret;
 }
 
@@ -78,5 +87,14 @@ space_def_new(uint32_t id, uint32_t uid, uint32_t exact_field_count,
 	memcpy(def->engine_name, engine_name, engine_len);
 	def->engine_name[engine_len] = 0;
 	def->opts = *opts;
+	if (opts->sql != NULL) {
+		def->opts.sql = strdup(opts->sql);
+		if (def->opts.sql == NULL) {
+			diag_set(OutOfMemory, strlen(opts->sql) + 1, "strdup",
+				 "def->opts.sql");
+			free(def);
+			return NULL;
+		}
+	}
 	return def;
 }
diff --git a/src/box/space_def.h b/src/box/space_def.h
index dde3f46352bb23665da4657d322ab1acd563ad16..0b5e4a8e18f809215c6bdf03d11ca6e181fd8e68 100644
--- a/src/box/space_def.h
+++ b/src/box/space_def.h
@@ -51,7 +51,7 @@ struct space_opts {
 	/**
 	 * SQL statement that produced this space.
 	 */
-	const char *sql;
+	char *sql;
 };
 
 extern const struct space_opts space_opts_default;
@@ -93,6 +93,7 @@ space_def_sizeof(uint32_t name_len)
 static inline void
 space_def_delete(struct space_def *def)
 {
+	free(def->opts.sql);
 	free(def);
 }