[tarantool-patches] [PATCH v1 05/28] sql: remove unused functions of SQL error system

imeevma at tarantool.org imeevma at tarantool.org
Mon Jun 10 16:56:32 MSK 2019


These functions are not currently used and should be removed.
---
 src/box/sql.c              |  7 ----
 src/box/sql/global.c       |  3 --
 src/box/sql/legacy.c       |  3 +-
 src/box/sql/main.c         | 34 -------------------
 src/box/sql/prepare.c      |  4 +--
 src/box/sql/sqlInt.h       | 13 --------
 src/box/sql/tarantoolInt.h |  3 --
 src/box/sql/util.c         | 81 ----------------------------------------------
 src/box/sql/vdbeapi.c      | 40 ++---------------------
 src/box/sql/vdbesort.c     | 11 ++-----
 10 files changed, 8 insertions(+), 191 deletions(-)

diff --git a/src/box/sql.c b/src/box/sql.c
index f2ef5b3..ae92ba0 100644
--- a/src/box/sql.c
+++ b/src/box/sql.c
@@ -155,13 +155,6 @@ cursor_seek(BtCursor *pCur, int *pRes);
 static int
 cursor_advance(BtCursor *pCur, int *pRes);
 
-const char *tarantoolErrorMessage()
-{
-	if (diag_is_empty(&fiber()->diag))
-		return NULL;
-	return box_error_message(box_error_last());
-}
-
 const void *tarantoolsqlPayloadFetch(BtCursor *pCur, u32 *pAmt)
 {
 	assert(pCur->curFlags & BTCF_TaCursor ||
diff --git a/src/box/sql/global.c b/src/box/sql/global.c
index 9af671a..e394db8 100644
--- a/src/box/sql/global.c
+++ b/src/box/sql/global.c
@@ -204,9 +204,6 @@ SQL_WSD struct sqlConfig sqlConfig = {
 	0,			/* xVdbeBranch */
 	0,			/* pVbeBranchArg */
 #endif
-#ifndef SQL_UNTESTABLE
-	0,			/* xTestCallback */
-#endif
 	0,			/* bLocaltimeFault */
 	0x7ffffffe		/* iOnceResetThreshold */
 };
diff --git a/src/box/sql/legacy.c b/src/box/sql/legacy.c
index d519991..1a3804e 100644
--- a/src/box/sql/legacy.c
+++ b/src/box/sql/legacy.c
@@ -64,8 +64,7 @@ sql_exec(sql * db,	/* The database on which the SQL executes */
 	char **azCols = 0;	/* Names of result columns */
 	int callbackIsInit;	/* True if callback data is initialized */
 
-	if (!sqlSafetyCheckOk(db))
-		return SQL_MISUSE;
+	assert(db != NULL);
 	if (zSql == 0)
 		zSql = "";
 
diff --git a/src/box/sql/main.c b/src/box/sql/main.c
index f35c84f..450f7d1 100644
--- a/src/box/sql/main.c
+++ b/src/box/sql/main.c
@@ -302,40 +302,6 @@ sqlRollbackAll(Vdbe * pVdbe)
 }
 
 /*
- * Return a static string that describes the kind of error specified in the
- * argument.
- */
-const char *
-sqlErrStr(int rc)
-{
-	static const char *const aMsg[] = {
-		/* SQL_OK          */ "not an error",
-		/* SQL_ERROR       */ "SQL logic error or missing database",
-		/* SQL_PERM        */ "access permission denied",
-		/* SQL_ABORT       */ "callback requested query abort",
-		/* SQL_BUSY        */ "database is locked",
-		/* SQL_LOCKED      */ "database table is locked",
-		/* SQL_NOMEM       */ "out of memory",
-		/* SQL_IOERR       */ "disk I/O error",
-		/* SQL_NOTFOUND    */ "unknown operation",
-		/* SQL_FULL        */ "database or disk is full",
-		/* SQL_CANTOPEN    */ "unable to open database file",
-		/* SQL_SCHEMA      */ "database schema has changed",
-		/* SQL_TOOBIG      */ "string or blob too big",
-		/* SQL_CONSTRAINT  */ "constraint failed",
-		/* SQL_MISUSE      */
-		    "library routine called out of sequence",
-		/* SQL_RANGE       */ "bind or column index out of range",
-		/* SQL_TARANTOOL_ERROR */ "SQL-/Tarantool error",
-	};
-	const char *zErr = "unknown error";
-	rc &= 0xff;
-	if (ALWAYS(rc >= 0) && rc < ArraySize(aMsg) && aMsg[rc] != 0)
-		zErr = aMsg[rc];
-	return zErr;
-}
-
-/*
  * This function is exactly the same as sql_create_function(), except
  * that it is designed to be called by internal code. The difference is
  * that if a malloc() fails in sql_create_function(), an error code
diff --git a/src/box/sql/prepare.c b/src/box/sql/prepare.c
index e692be0..2b3ac29 100644
--- a/src/box/sql/prepare.c
+++ b/src/box/sql/prepare.c
@@ -193,9 +193,7 @@ sqlLockAndPrepare(sql * db,		/* Database handle. */
 	int rc;
 
 	*ppStmt = 0;
-	if (!sqlSafetyCheckOk(db) || zSql == 0) {
-		return SQL_MISUSE;
-	}
+	assert(zSql != NULL && db != NULL);
 	rc = sqlPrepare(db, zSql, nBytes, saveSqlFlag, pOld, ppStmt,
 			    pzTail);
 	if (rc == SQL_SCHEMA) {
diff --git a/src/box/sql/sqlInt.h b/src/box/sql/sqlInt.h
index 2b7aa8b..7c00990 100644
--- a/src/box/sql/sqlInt.h
+++ b/src/box/sql/sqlInt.h
@@ -2908,9 +2908,6 @@ struct sqlConfig {
 	void (*xVdbeBranch) (void *, int iSrcLine, u8 eThis, u8 eMx);	/* Callback */
 	void *pVdbeBranchArg;	/* 1st argument */
 #endif
-#ifndef SQL_UNTESTABLE
-	int (*xTestCallback) (int);	/* Invoked by sqlFaultSim() */
-#endif
 	int bLocaltimeFault;	/* True to fail localtime() calls */
 	int iOnceResetThreshold;	/* When to reset OP_Once counters */
 };
@@ -3369,12 +3366,6 @@ int
 vdbe_emit_open_cursor(struct Parse *parse, int cursor, int index_id,
 		      struct space *space);
 
-#ifdef SQL_UNTESTABLE
-#define sqlFaultSim(X) SQL_OK
-#else
-int sqlFaultSim(int);
-#endif
-
 /**
  * The parser calls this routine in order to create a new VIEW.
  *
@@ -3936,8 +3927,6 @@ FuncDef *sqlFindFunction(sql *, const char *, int, u8);
 void sqlRegisterBuiltinFunctions(void);
 void sqlRegisterDateTimeFunctions(void);
 void sqlRegisterPerConnectionBuiltinFunctions(sql *);
-int sqlSafetyCheckOk(sql *);
-int sqlSafetyCheckSickOrOk(sql *);
 
 /**
  * Evaluate a view and store its result in an ephemeral table.
@@ -4460,8 +4449,6 @@ sql_dec_or_hex_to_i64(const char *z, int64_t *val);
 void *sqlHexToBlob(sql *, const char *z, int n);
 u8 sqlHexToInt(int h);
 
-const char *sqlErrStr(int);
-
 /**
  * Return the collation sequence for the expression pExpr. If
  * there is no defined collating sequence, return NULL.
diff --git a/src/box/sql/tarantoolInt.h b/src/box/sql/tarantoolInt.h
index f688a02..375a8cc 100644
--- a/src/box/sql/tarantoolInt.h
+++ b/src/box/sql/tarantoolInt.h
@@ -10,9 +10,6 @@
 
 struct fk_constraint_def;
 
-/* Misc */
-const char *tarantoolErrorMessage();
-
 /* Storage interface. */
 const void *tarantoolsqlPayloadFetch(BtCursor * pCur, u32 * pAmt);
 
diff --git a/src/box/sql/util.c b/src/box/sql/util.c
index d5f6447..713e535 100644
--- a/src/box/sql/util.c
+++ b/src/box/sql/util.c
@@ -58,26 +58,6 @@ sqlCoverage(int x)
 #endif
 
 /*
- * Give a callback to the test harness that can be used to simulate faults
- * in places where it is difficult or expensive to do so purely by means
- * of inputs.
- *
- * The intent of the integer argument is to let the fault simulator know
- * which of multiple sqlFaultSim() calls has been hit.
- *
- * Return whatever integer value the test callback returns, or return
- * SQL_OK if no test callback is installed.
- */
-#ifndef SQL_UNTESTABLE
-int
-   sqlFaultSim(int iTest)
-{
-	int (*xCallback) (int) = sqlGlobalConfig.xTestCallback;
-	return xCallback ? xCallback(iTest) : SQL_OK;
-}
-#endif
-
-/*
  * Return true if the floating point value is Not a Number (NaN).
  *
  * Use the math library isnan() function if compiled with SQL_HAVE_ISNAN.
@@ -1131,67 +1111,6 @@ sqlHexToBlob(sql * db, const char *z, int n)
 #endif				/* !SQL_OMIT_BLOB_LITERAL || SQL_HAS_CODEC */
 
 /*
- * Log an error that is an API call on a connection pointer that should
- * not have been used.  The "type" of connection pointer is given as the
- * argument.  The zType is a word like "NULL" or "closed" or "invalid".
- */
-static void
-logBadConnection(const char *zType)
-{
-	sql_log(SQL_MISUSE,
-		    "API call with %s database connection pointer", zType);
-}
-
-/*
- * Check to make sure we have a valid db pointer.  This test is not
- * foolproof but it does provide some measure of protection against
- * misuse of the interface such as passing in db pointers that are
- * NULL or which have been previously closed.  If this routine returns
- * 1 it means that the db pointer is valid and 0 if it should not be
- * dereferenced for any reason.  The calling function should invoke
- * SQL_MISUSE immediately.
- *
- * sqlSafetyCheckOk() requires that the db pointer be valid for
- * use.  sqlSafetyCheckSickOrOk() allows a db pointer that failed to
- * open properly and is not fit for general use but which can be
- * used as an argument to sql_errmsg() or sql_close().
- */
-int
-sqlSafetyCheckOk(sql * db)
-{
-	u32 magic;
-	if (db == 0) {
-		logBadConnection("NULL");
-		return 0;
-	}
-	magic = db->magic;
-	if (magic != SQL_MAGIC_OPEN) {
-		if (sqlSafetyCheckSickOrOk(db)) {
-			testcase(sqlGlobalConfig.xLog != 0);
-			logBadConnection("unopened");
-		}
-		return 0;
-	} else {
-		return 1;
-	}
-}
-
-int
-sqlSafetyCheckSickOrOk(sql * db)
-{
-	u32 magic;
-	magic = db->magic;
-	if (magic != SQL_MAGIC_SICK &&
-	    magic != SQL_MAGIC_OPEN && magic != SQL_MAGIC_BUSY) {
-		testcase(sqlGlobalConfig.xLog != 0);
-		logBadConnection("invalid");
-		return 0;
-	} else {
-		return 1;
-	}
-}
-
-/*
  * Attempt to add, substract, or multiply the 64-bit signed value iB against
  * the other 64-bit signed integer at *pA and store the result in *pA.
  * Return 0 on success.  Or if the operation would have resulted in an
diff --git a/src/box/sql/vdbeapi.c b/src/box/sql/vdbeapi.c
index c151a52..d52fc21 100644
--- a/src/box/sql/vdbeapi.c
+++ b/src/box/sql/vdbeapi.c
@@ -37,35 +37,6 @@
 #include "sqlInt.h"
 #include "vdbeInt.h"
 
-/*
- * Check on a Vdbe to make sure it has not been finalized.  Log
- * an error and return true if it has been finalized (or is otherwise
- * invalid).  Return false if it is ok.
- */
-static int
-vdbeSafety(Vdbe * p)
-{
-	if (p->db == 0) {
-		sql_log(SQL_MISUSE,
-			    "API called with finalized prepared statement");
-		return 1;
-	} else {
-		return 0;
-	}
-}
-
-static int
-vdbeSafetyNotNull(Vdbe * p)
-{
-	if (p == 0) {
-		sql_log(SQL_MISUSE,
-			    "API called with NULL prepared statement");
-		return 1;
-	} else {
-		return vdbeSafety(p);
-	}
-}
-
 #ifndef SQL_OMIT_TRACE
 /*
  * Invoke the profile callback.  This routine is only called if we already
@@ -120,8 +91,7 @@ sql_finalize(sql_stmt * pStmt)
 	} else {
 		Vdbe *v = (Vdbe *) pStmt;
 		sql *db = v->db;
-		if (vdbeSafety(v))
-			return SQL_MISUSE;
+		assert(db != NULL);
 		checkProfileCallback(db, v);
 		rc = sqlVdbeFinalize(v);
 		rc = sqlApiExit(db, rc);
@@ -541,9 +511,7 @@ sql_step(sql_stmt * pStmt)
 	Vdbe *v = (Vdbe *) pStmt;	/* the prepared statement */
 	int cnt = 0;		/* Counter to prevent infinite loop of reprepares */
 
-	if (vdbeSafetyNotNull(v)) {
-		return SQL_MISUSE;
-	}
+	assert(v != NULL);
 	v->doingRerun = 0;
 	while ((rc = sqlStep(v)) == SQL_SCHEMA
 	       && cnt++ < SQL_MAX_SCHEMA_RETRY) {
@@ -1022,9 +990,7 @@ static int
 vdbeUnbind(Vdbe * p, int i)
 {
 	Mem *pVar;
-	if (vdbeSafetyNotNull(p)) {
-		return SQL_MISUSE;
-	}
+	assert(p != NULL);
 	if (p->magic != VDBE_MAGIC_RUN || p->pc >= 0) {
 		sql_log(SQL_MISUSE,
 			    "bind on a busy prepared statement: [%s]", p->zSql);
diff --git a/src/box/sql/vdbesort.c b/src/box/sql/vdbesort.c
index 779e832..da9ee3e 100644
--- a/src/box/sql/vdbesort.c
+++ b/src/box/sql/vdbesort.c
@@ -679,8 +679,6 @@ vdbePmaReaderSeek(SortSubtask * pTask,	/* Task context */
 
 	assert(pReadr->pIncr == 0 || pReadr->pIncr->bEof == 0);
 
-	if (sqlFaultSim(201))
-		return SQL_IOERR_READ;
 	if (pReadr->aMap) {
 		sqlOsUnfetch(pReadr->pFd, 0, pReadr->aMap);
 		pReadr->aMap = 0;
@@ -1105,8 +1103,7 @@ vdbeMergeEngineNew(int nReader)
 		N += N;
 	nByte = sizeof(MergeEngine) + N * (sizeof(int) + sizeof(PmaReader));
 
-	pNew =
-	    sqlFaultSim(100) ? 0 : (MergeEngine *) sqlMallocZero(nByte);
+	pNew = (MergeEngine *) sqlMallocZero(nByte);
 	if (pNew) {
 		pNew->nTree = N;
 		pNew->pTask = 0;
@@ -1243,8 +1240,6 @@ vdbeSorterOpenTempFile(sql * db,	/* Database handle doing sort */
 		       sql_file ** ppFd)
 {
 	int rc;
-	if (sqlFaultSim(202))
-		return SQL_IOERR_ACCESS;
 	rc = sqlOsOpenMalloc(db->pVfs, 0, ppFd,
 				 SQL_OPEN_READWRITE | SQL_OPEN_CREATE |
 				 SQL_OPEN_EXCLUSIVE |
@@ -2001,8 +1996,8 @@ vdbeIncrMergerNew(SortSubtask * pTask,	/* The thread that will be using the new
     )
 {
 	int rc = SQL_OK;
-	IncrMerger *pIncr = *ppOut = (IncrMerger *)
-	    (sqlFaultSim(100) ? 0 : sqlMallocZero(sizeof(*pIncr)));
+	IncrMerger *pIncr = *ppOut =
+		(IncrMerger *) sqlMallocZero(sizeof(*pIncr));
 	if (pIncr) {
 		pIncr->pMerger = pMerger;
 		pIncr->pTask = pTask;
-- 
2.7.4





More information about the Tarantool-patches mailing list