[tarantool-patches] [PATCH 2/4] sql: remove unused error codes, use enum instead of defines
Vladislav Shpilevoy
v.shpilevoy at tarantool.org
Tue Apr 3 18:34:13 MSK 2018
---
src/box/sql/build.c | 4 ---
src/box/sql/main.c | 32 ------------------
src/box/sql/os_unix.c | 9 +-----
src/box/sql/sqliteInt.h | 86 ++++++++++++++++++++++++++++---------------------
src/box/sql/vdbe.c | 1 -
src/box/sql/vdbeInt.h | 5 +--
src/box/sql/vdbeapi.c | 9 ------
src/box/sql/vdbeaux.c | 1 -
8 files changed, 52 insertions(+), 95 deletions(-)
diff --git a/src/box/sql/build.c b/src/box/sql/build.c
index 5e3ed0f39..4510df206 100644
--- a/src/box/sql/build.c
+++ b/src/box/sql/build.c
@@ -105,10 +105,6 @@ sqlite3FinishCoding(Parse * pParse)
if (db->init.busy == 0)
sqlite3VdbeChangeP5(v, 1);
-
- VdbeComment((v, "usesStmtJournal=%d",
- pParse->mayAbort
- && pParse->isMultiWrite));
}
/* Code constant expressions that where factored out of inner loops */
diff --git a/src/box/sql/main.c b/src/box/sql/main.c
index b77348c21..8e898178a 100644
--- a/src/box/sql/main.c
+++ b/src/box/sql/main.c
@@ -800,9 +800,6 @@ sqlite3ErrName(int rc)
case SQLITE_ERROR:
zName = "SQLITE_ERROR";
break;
- case SQLITE_INTERNAL:
- zName = "SQLITE_INTERNAL";
- break;
case SQLITE_PERM:
zName = "SQLITE_PERM";
break;
@@ -821,9 +818,6 @@ sqlite3ErrName(int rc)
case SQLITE_NOMEM:
zName = "SQLITE_NOMEM";
break;
- case SQLITE_READONLY:
- zName = "SQLITE_READONLY";
- break;
case SQLITE_INTERRUPT:
zName = "SQLITE_INTERRUPT";
break;
@@ -917,12 +911,6 @@ sqlite3ErrName(int rc)
case SQLITE_CANTOPEN:
zName = "SQLITE_CANTOPEN";
break;
- case SQLITE_PROTOCOL:
- zName = "SQLITE_PROTOCOL";
- break;
- case SQLITE_EMPTY:
- zName = "SQLITE_EMPTY";
- break;
case SQLITE_SCHEMA:
zName = "SQLITE_SCHEMA";
break;
@@ -959,27 +947,15 @@ sqlite3ErrName(int rc)
case SQLITE_MISUSE:
zName = "SQLITE_MISUSE";
break;
- case SQLITE_NOLFS:
- zName = "SQLITE_NOLFS";
- break;
- case SQLITE_FORMAT:
- zName = "SQLITE_FORMAT";
- break;
case SQLITE_RANGE:
zName = "SQLITE_RANGE";
break;
- case SQLITE_NOTADB:
- zName = "SQLITE_NOTADB";
- break;
case SQL_TARANTOOL_ERROR:
zName = "SQLITE_TARANTOOL_ERROR";
break;
case SQLITE_ROW:
zName = "SQLITE_ROW";
break;
- case SQLITE_NOTICE:
- zName = "SQLITE_NOTICE";
- break;
case SQLITE_WARNING:
zName = "SQLITE_WARNING";
break;
@@ -1008,32 +984,24 @@ sqlite3ErrStr(int rc)
static const char *const aMsg[] = {
/* SQLITE_OK */ "not an error",
/* SQLITE_ERROR */ "SQL logic error or missing database",
- /* SQLITE_INTERNAL */ 0,
/* SQLITE_PERM */ "access permission denied",
/* SQLITE_ABORT */ "callback requested query abort",
/* SQLITE_BUSY */ "database is locked",
/* SQLITE_LOCKED */ "database table is locked",
/* SQLITE_NOMEM */ "out of memory",
- /* SQLITE_READONLY */ "attempt to write a readonly database",
/* SQLITE_INTERRUPT */ "interrupted",
/* SQLITE_IOERR */ "disk I/O error",
/* SQLITE_CORRUPT */ "database disk image is malformed",
/* SQLITE_NOTFOUND */ "unknown operation",
/* SQLITE_FULL */ "database or disk is full",
/* SQLITE_CANTOPEN */ "unable to open database file",
- /* SQLITE_PROTOCOL */ "locking protocol",
- /* SQLITE_EMPTY */ "table contains no data",
/* SQLITE_SCHEMA */ "database schema has changed",
/* SQLITE_TOOBIG */ "string or blob too big",
/* SQLITE_CONSTRAINT */ "constraint failed",
/* SQLITE_MISMATCH */ "datatype mismatch",
/* SQLITE_MISUSE */
"library routine called out of sequence",
- /* SQLITE_NOLFS */ "large file support is disabled",
- /* SQLITE_FORMAT */ "auxiliary database format error",
/* SQLITE_RANGE */ "bind or column index out of range",
- /* SQLITE_NOTADB */
- "file is encrypted or is not a database",
/* SQL_TARANTOOL_ITERATOR_FAIL */ "Tarantool's iterator failed",
/* SQL_TARANTOOL_INSERT_FAIL */ "Tarantool's insert failed",
/* SQL_TARANTOOL_DELETE_FAIL */ "Tarantool's delete failed",
diff --git a/src/box/sql/os_unix.c b/src/box/sql/os_unix.c
index 8dce6f0c2..9cb8a54d0 100644
--- a/src/box/sql/os_unix.c
+++ b/src/box/sql/os_unix.c
@@ -1011,10 +1011,6 @@ findInodeInfo(unixFile * pFile, /* Unix file with file desc used in the key */
rc = osFstat(fd, &statbuf);
if (rc != 0) {
storeLastErrno(pFile, errno);
-#if defined(EOVERFLOW) && defined(SQLITE_DISABLE_LFS)
- if (pFile->lastErrno == EOVERFLOW)
- return SQLITE_NOLFS;
-#endif
return SQLITE_IOERR;
}
#ifdef __APPLE__
@@ -6011,10 +6007,7 @@ proxyFileControl(sqlite3_file * id, int op, void *pArg)
int isProxyStyle = (pFile->pMethod == &proxyIoMethods);
if (pArg == NULL || (const char *)pArg == 0) {
if (isProxyStyle) {
- /* turn off proxy locking - not supported. */
- rc = SQLITE_ERROR
- /*SQLITE_PROTOCOL? SQLITE_MISUSE? */
- ;
+ rc = SQLITE_ERROR;
} else {
/* turn off proxy locking - already off - NOOP */
rc = SQLITE_OK;
diff --git a/src/box/sql/sqliteInt.h b/src/box/sql/sqliteInt.h
index e786cf842..f78a93a71 100644
--- a/src/box/sql/sqliteInt.h
+++ b/src/box/sql/sqliteInt.h
@@ -405,42 +405,56 @@ struct sqlite3_vfs {
#define SQLITE_LIMIT_TRIGGER_DEPTH 9
#define SQLITE_LIMIT_WORKER_THREADS 10
-#define SQLITE_OK 0 /* Successful result */
-/* beginning-of-error-codes */
-#define SQLITE_ERROR 1 /* SQL error or missing database */
-#define SQLITE_INTERNAL 2 /* Internal logic error in SQLite */
-#define SQLITE_PERM 3 /* Access permission denied */
-#define SQLITE_ABORT 4 /* Callback routine requested an abort */
-#define SQLITE_BUSY 5 /* The database file is locked */
-#define SQLITE_LOCKED 6 /* A table in the database is locked */
-#define SQLITE_NOMEM 7 /* A malloc() failed */
-#define SQLITE_READONLY 8 /* Attempt to write a readonly database */
-#define SQLITE_INTERRUPT 9 /* Operation terminated by sqlite3_interrupt() */
-#define SQLITE_IOERR 10 /* Some kind of disk I/O error occurred */
-#define SQLITE_CORRUPT 11 /* The database disk image is malformed */
-#define SQLITE_NOTFOUND 12 /* Unknown opcode in sqlite3_file_control() */
-#define SQLITE_FULL 13 /* Insertion failed because database is full */
-#define SQLITE_CANTOPEN 14 /* Unable to open the database file */
-#define SQLITE_PROTOCOL 15 /* Database lock protocol error */
-#define SQLITE_EMPTY 16 /* Database is empty */
-#define SQLITE_SCHEMA 17 /* The database schema changed */
-#define SQLITE_TOOBIG 18 /* String or BLOB exceeds size limit */
-#define SQLITE_CONSTRAINT 19 /* Abort due to constraint violation */
-#define SQLITE_MISMATCH 20 /* Data type mismatch */
-#define SQLITE_MISUSE 21 /* Library used incorrectly */
-#define SQLITE_NOLFS 22 /* Uses OS features not supported on host */
-#define SQLITE_FORMAT 23 /* Auxiliary database format error */
-#define SQLITE_RANGE 24 /* 2nd parameter to sqlite3_bind out of range */
-#define SQLITE_NOTADB 25 /* File opened that is not a database file */
-#define SQL_TARANTOOL_ITERATOR_FAIL 26
-#define SQL_TARANTOOL_INSERT_FAIL 27
-#define SQL_TARANTOOL_DELETE_FAIL 28
-#define SQL_TARANTOOL_ERROR 29
-#define SQLITE_NOTICE 31 /* Notifications from sqlite3_log() */
-#define SQLITE_WARNING 32 /* Warnings from sqlite3_log() */
-#define SQLITE_ROW 100 /* sqlite3_step() has another row ready */
-#define SQLITE_DONE 101 /* sqlite3_step() has finished executing */
-/* end-of-error-codes */
+enum sql_ret_code {
+ /** Result of a routine is ok. */
+ SQLITE_OK = 0,
+ /** Common error code. */
+ SQLITE_ERROR,
+ /** Access permission denied. */
+ SQLITE_PERM,
+ /** Callback routine requested an abort. */
+ SQLITE_ABORT,
+ /** The database file is locked. */
+ SQLITE_BUSY,
+ /** A table in the database is locked. */
+ SQLITE_LOCKED,
+ /** A malloc() failed. */
+ SQLITE_NOMEM,
+ /** Operation terminated by sqlite3_interrupt(). */
+ SQLITE_INTERRUPT,
+ /** Some kind of disk I/O error occurred. */
+ SQLITE_IOERR,
+ /** The database disk image is malformed. */
+ SQLITE_CORRUPT,
+ /** Unknown opcode in sqlite3_file_control(). */
+ SQLITE_NOTFOUND,
+ /** Insertion failed because database is full. */
+ SQLITE_FULL,
+ /** Unable to open the database file. */
+ SQLITE_CANTOPEN,
+ /** The database schema changed. */
+ SQLITE_SCHEMA,
+ /** String or BLOB exceeds size limit. */
+ SQLITE_TOOBIG,
+ /** Abort due to constraint violation. */
+ SQLITE_CONSTRAINT,
+ /** Data type mismatch. */
+ SQLITE_MISMATCH,
+ /** Library used incorrectly. */
+ SQLITE_MISUSE,
+ /** 2nd parameter to sqlite3_bind out of range. */
+ SQLITE_RANGE,
+ SQL_TARANTOOL_ITERATOR_FAIL,
+ SQL_TARANTOOL_INSERT_FAIL,
+ SQL_TARANTOOL_DELETE_FAIL,
+ SQL_TARANTOOL_ERROR,
+ /** Warnings from sqlite3_log(). */
+ SQLITE_WARNING,
+ /** sqlite3_step() has another row ready. */
+ SQLITE_ROW,
+ /** sqlite3_step() has finished executing. */
+ SQLITE_DONE,
+};
void *
sqlite3_malloc(int);
diff --git a/src/box/sql/vdbe.c b/src/box/sql/vdbe.c
index bf8a27709..1685c27ce 100644
--- a/src/box/sql/vdbe.c
+++ b/src/box/sql/vdbe.c
@@ -1419,7 +1419,6 @@ case OP_ResultRow: {
*/
if (SQLITE_OK!=(rc = sqlite3VdbeCheckFk(p, 0))) {
assert(user_session->sql_flags&SQLITE_CountRows);
- assert(p->usesStmtJournal);
goto abort_due_to_error;
}
diff --git a/src/box/sql/vdbeInt.h b/src/box/sql/vdbeInt.h
index fcb45c8a8..f8f4e566b 100644
--- a/src/box/sql/vdbeInt.h
+++ b/src/box/sql/vdbeInt.h
@@ -418,9 +418,6 @@ struct Vdbe {
i64 startTime; /* Time when query started - used for profiling */
#endif
int nOp; /* Number of instructions in the program */
-#ifdef SQLITE_DEBUG
- int rcApp; /* errcode set by sqlite3_result_error_code() */
-#endif
u16 nResColumn; /* Number of columns in one row of the result set */
u8 errorAction; /* Recovery action to do in case of an error */
bft expired:1; /* True if the VM needs to be recompiled */
@@ -428,7 +425,6 @@ struct Vdbe {
bft explain:2; /* True if EXPLAIN present on SQL command */
bft changeCntOn:1; /* True to update the change-counter */
bft runOnlyOnce:1; /* Automatically expire on reset */
- bft usesStmtJournal:1; /* True if uses a statement journal */
bft isPrepareV2:1; /* True if prepared with prepare_v2() */
u32 aCounter[5]; /* Counters used by sqlite3_stmt_status() */
char *zSql; /* Text of the SQL statement that generated this */
@@ -446,6 +442,7 @@ struct Vdbe {
int nScan; /* Entries in aScan[] */
ScanStatus *aScan; /* Scan definitions for sqlite3_stmt_scanstatus() */
#endif
+
};
/*
diff --git a/src/box/sql/vdbeapi.c b/src/box/sql/vdbeapi.c
index dff1e1697..4c6e90c64 100644
--- a/src/box/sql/vdbeapi.c
+++ b/src/box/sql/vdbeapi.c
@@ -469,10 +469,6 @@ sqlite3_result_error_code(sqlite3_context * pCtx, int errCode)
{
pCtx->isError = errCode;
pCtx->fErrorOrAux = 1;
-#ifdef SQLITE_DEBUG
- if (pCtx->pVdbe)
- pCtx->pVdbe->rcApp = errCode;
-#endif
if (pCtx->pOut->flags & MEM_Null) {
sqlite3VdbeMemSetStr(pCtx->pOut, sqlite3ErrStr(errCode), -1, 1,
SQLITE_STATIC);
@@ -580,9 +576,6 @@ sqlite3Step(Vdbe * p)
db->nVdbeActive++;
p->pc = 0;
}
-#ifdef SQLITE_DEBUG
- p->rcApp = SQLITE_OK;
-#endif
#ifndef SQLITE_OMIT_EXPLAIN
if (p->explain) {
rc = sqlite3VdbeList(p);
@@ -614,8 +607,6 @@ sqlite3Step(Vdbe * p)
*/
assert(rc == SQLITE_ROW || rc == SQLITE_DONE || rc == SQLITE_ERROR
|| (rc & 0xff) == SQLITE_BUSY || rc == SQLITE_MISUSE);
- assert((p->rc != SQLITE_ROW && p->rc != SQLITE_DONE)
- || p->rc == p->rcApp);
if (p->isPrepareV2 && rc != SQLITE_ROW && rc != SQLITE_DONE) {
/* If this statement was prepared using sqlite3_prepare_v2(), and an
* error has occurred, then return the error code in p->rc to the
diff --git a/src/box/sql/vdbeaux.c b/src/box/sql/vdbeaux.c
index e4335524a..bb121a318 100644
--- a/src/box/sql/vdbeaux.c
+++ b/src/box/sql/vdbeaux.c
@@ -2148,7 +2148,6 @@ sqlite3VdbeMakeReady(Vdbe * p, /* The VDBE */
assert(EIGHT_BYTE_ALIGNMENT(&x.pSpace[x.nFree]));
resolveP2Values(p, &nArg);
- p->usesStmtJournal = (u8) (pParse->isMultiWrite && pParse->mayAbort);
if (pParse->explain && nMem < 10) {
nMem = 10;
}
--
2.14.3 (Apple Git-98)
More information about the Tarantool-patches
mailing list