diff --git a/src/box/space_def.c b/src/box/space_def.c
index 542289eaddad0fa4e3d2630b023c365c24ada1b5..69b92c5c16a6a575e18b779c2b12e0b9227a8197 100644
--- a/src/box/space_def.c
+++ b/src/box/space_def.c
@@ -153,6 +153,7 @@ space_def_dup(const struct space_def *src)
 			struct Expr *e = src->fields[i].default_value_expr;
 			if (e != NULL) {
 				char *expr_pos_old = expr_pos;
+				(void) expr_pos_old;
 				e = sql_expr_dup(sql_get(), e, 0, &expr_pos);
 				assert(e != NULL);
 				/* Note: due to SQL legacy
@@ -233,6 +234,7 @@ space_def_new(uint32_t id, uint32_t uid, uint32_t exact_field_count,
 			struct Expr *e = def->fields[i].default_value_expr;
 			if (e != NULL) {
 				char *expr_pos_old = expr_pos;
+				(void) expr_pos_old;
 				e = sql_expr_dup(sql_get(), e, 0, &expr_pos);
 				assert(e != NULL);
 				/* Note: due to SQL legacy
diff --git a/src/box/sql/CMakeLists.txt b/src/box/sql/CMakeLists.txt
index aa57add59da446d0df90e1d57c7e21f3d2c8ae73..7f7b60e22d179351282390952b33dfb91b6d1d07 100644
--- a/src/box/sql/CMakeLists.txt
+++ b/src/box/sql/CMakeLists.txt
@@ -2,9 +2,6 @@ if(CMAKE_BUILD_TYPE STREQUAL "Debug")
   add_definitions(-DSQLITE_DEBUG=1)
   add_definitions(-DSQLITE_ENABLE_SELECTTRACE)
   add_definitions(-DSQLITE_ENABLE_WHERETRACE)
-
-  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror")
-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Werror")
 endif()
 
 set(EXT_SRC_DIR ${CMAKE_SOURCE_DIR}/extra)
diff --git a/src/box/sql/build.c b/src/box/sql/build.c
index 7670d53a1b68e48fc7b8ff1b609691b771d3a0ad..a806fb4b3cdbeed85717fdc036f4a59783c2ae93 100644
--- a/src/box/sql/build.c
+++ b/src/box/sql/build.c
@@ -2387,7 +2387,7 @@ constraint_is_named(const char *name)
 void
 sql_create_index(struct Parse *parse, struct Token *token,
 		 struct SrcList *tbl_name, struct ExprList *col_list,
-		 struct Token *start, enum sort_order sort_order,
+		 MAYBE_UNUSED struct Token *start, enum sort_order sort_order,
 		 bool if_not_exist, enum sql_index_type idx_type) {
 	/* The index to be created. */
 	struct index *index = NULL;
diff --git a/src/box/sql/pragma.c b/src/box/sql/pragma.c
index 13baf3545b2cfa2f34f6198c9d3ab8d007fda8e6..2e007f9423272e56f29ec60e0511f7ba1bbba633 100644
--- a/src/box/sql/pragma.c
+++ b/src/box/sql/pragma.c
@@ -430,7 +430,6 @@ sqlite3Pragma(Parse * pParse, Token * pId,	/* First part of [schema.]id field */
 	char *zLeft = 0;	/* Nul-terminated UTF-8 string <id> */
 	char *zRight = 0;	/* Nul-terminated UTF-8 string <value>, or NULL */
 	char *zTable = 0;	/* Nul-terminated UTF-8 string <value2> or NULL */
-	int rc;			/* return value form SQLITE_FCNTL_PRAGMA */
 	sqlite3 *db = pParse->db;	/* The database connection */
 	Vdbe *v = sqlite3GetVdbe(pParse);	/* Prepared statement */
 	const PragmaName *pPragma;	/* The pragma */
@@ -526,8 +525,9 @@ sqlite3Pragma(Parse * pParse, Token * pId,	/* First part of [schema.]id field */
 		box_tuple_t *tuple;
 		box_iterator_t* iter;
 		iter = box_index_iterator(space_id, 0,ITER_ALL, key_buf, key_end);
-		rc = box_iterator_next(iter, &tuple);
-		assert(rc==0);
+		int rc = box_iterator_next(iter, &tuple);
+		(void) rc;
+		assert(rc == 0);
 		for (i = 0; tuple!=NULL; i++, box_iterator_next(iter, &tuple)){
 			/* 1 is name field number */
 			const char *str = tuple_field_cstr(tuple, 1);
diff --git a/src/box/sql/vdbeaux.c b/src/box/sql/vdbeaux.c
index 54edf1b039b6364961d9ed3ea36fa66b7decfbde..6e42d059623c4cbcf0e5163ab39f6b5a7deab63d 100644
--- a/src/box/sql/vdbeaux.c
+++ b/src/box/sql/vdbeaux.c
@@ -2271,7 +2271,7 @@ sql_txn_begin(Vdbe *p)
 }
 
 Savepoint *
-sql_savepoint(Vdbe *p, const char *zName)
+sql_savepoint(MAYBE_UNUSED Vdbe *p, const char *zName)
 {
 	assert(p);
 	size_t nName = zName ? strlen(zName) + 1 : 0;
diff --git a/src/box/sql/vdbemem.c b/src/box/sql/vdbemem.c
index ef70442b36e70d2bbef2ff11cfaef9896ed2dcbb..8edbd83a5fbfa090f36b95c70c74caff55d9d195 100644
--- a/src/box/sql/vdbemem.c
+++ b/src/box/sql/vdbemem.c
@@ -1597,6 +1597,7 @@ sql_stat4_column(struct sqlite3 *db, const char *record, uint32_t col_num,
 	const char *a = record;
 	assert(mp_typeof(a[0]) == MP_ARRAY);
 	uint32_t col_cnt = mp_decode_array(&a);
+	(void) col_cnt;
 	assert(col_cnt > col_num);
 	for (uint32_t i = 0; i < col_num; i++)
 		mp_next(&a);
diff --git a/src/box/sql/where.c b/src/box/sql/where.c
index 520a847dd5c21c6cd1c40749f4d05dddc8487465..713cabaff6e9368373b161004db9cd9696b20710 100644
--- a/src/box/sql/where.c
+++ b/src/box/sql/where.c
@@ -4614,10 +4614,10 @@ sqlite3WhereBegin(Parse * pParse,	/* The parser context */
 				iIndexCur = pLevel->iTabCur;
 				op = 0;
 			} else if (pWInfo->eOnePass != ONEPASS_OFF) {
+				iIndexCur = iAuxArg;
 				if (pTabItem->pTab->space->index_count != 0) {
 					uint32_t iid = 0;
 					struct index *pJ = pTabItem->pTab->space->index[iid];
-					iIndexCur = iAuxArg;
 					assert(wctrlFlags &
 					       WHERE_ONEPASS_DESIRED);
 					while (pJ->def->iid != idx_def->iid) {