mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-03-04 07:40:42 +00:00
Bug 384526 - Use sqlite3_prepare_v2 instead of sqlite3_prepare. r=sspitzer
This commit is contained in:
parent
7970b2a924
commit
f0ad954a38
@ -140,7 +140,7 @@ mozStorageConnection::Initialize(nsIFile *aDatabaseFile)
|
|||||||
*/
|
*/
|
||||||
sqlite3_stmt *stmt = nsnull;
|
sqlite3_stmt *stmt = nsnull;
|
||||||
nsCString query("SELECT * FROM sqlite_master");
|
nsCString query("SELECT * FROM sqlite_master");
|
||||||
srv = sqlite3_prepare (mDBConn, query.get(), query.Length(), &stmt, nsnull);
|
srv = sqlite3_prepare_v2(mDBConn, query.get(), query.Length(), &stmt, NULL);
|
||||||
|
|
||||||
if (srv == SQLITE_OK) {
|
if (srv == SQLITE_OK) {
|
||||||
srv = sqlite3_step(stmt);
|
srv = sqlite3_step(stmt);
|
||||||
@ -304,7 +304,8 @@ mozStorageConnection::TableExists(const nsACString& aSQLStatement, PRBool *_retv
|
|||||||
query.AppendLiteral("'");
|
query.AppendLiteral("'");
|
||||||
|
|
||||||
sqlite3_stmt *stmt = nsnull;
|
sqlite3_stmt *stmt = nsnull;
|
||||||
int srv = sqlite3_prepare (mDBConn, query.get(), query.Length(), &stmt, nsnull);
|
int srv = sqlite3_prepare_v2(mDBConn, query.get(), query.Length(), &stmt,
|
||||||
|
NULL);
|
||||||
if (srv != SQLITE_OK) {
|
if (srv != SQLITE_OK) {
|
||||||
HandleSqliteError(query.get());
|
HandleSqliteError(query.get());
|
||||||
return ConvertResultCode(srv);
|
return ConvertResultCode(srv);
|
||||||
@ -320,9 +321,9 @@ mozStorageConnection::TableExists(const nsACString& aSQLStatement, PRBool *_retv
|
|||||||
exists = PR_TRUE;
|
exists = PR_TRUE;
|
||||||
} else if (srv == SQLITE_DONE) {
|
} else if (srv == SQLITE_DONE) {
|
||||||
exists = PR_FALSE;
|
exists = PR_FALSE;
|
||||||
} else if (srv == SQLITE_ERROR) {
|
} else {
|
||||||
HandleSqliteError("TableExists finalize");
|
HandleSqliteError("TableExists finalize");
|
||||||
return NS_ERROR_FAILURE;
|
return ConvertResultCode(srv);
|
||||||
}
|
}
|
||||||
|
|
||||||
*_retval = exists;
|
*_retval = exists;
|
||||||
@ -339,7 +340,8 @@ mozStorageConnection::IndexExists(const nsACString& aIndexName, PRBool* _retval)
|
|||||||
query.AppendLiteral("'");
|
query.AppendLiteral("'");
|
||||||
|
|
||||||
sqlite3_stmt *stmt = nsnull;
|
sqlite3_stmt *stmt = nsnull;
|
||||||
int srv = sqlite3_prepare(mDBConn, query.get(), query.Length(), &stmt, nsnull);
|
int srv = sqlite3_prepare_v2(mDBConn, query.get(), query.Length(), &stmt,
|
||||||
|
NULL);
|
||||||
if (srv != SQLITE_OK) {
|
if (srv != SQLITE_OK) {
|
||||||
HandleSqliteError(query.get());
|
HandleSqliteError(query.get());
|
||||||
return ConvertResultCode(srv);
|
return ConvertResultCode(srv);
|
||||||
@ -348,14 +350,10 @@ mozStorageConnection::IndexExists(const nsACString& aIndexName, PRBool* _retval)
|
|||||||
*_retval = PR_FALSE;
|
*_retval = PR_FALSE;
|
||||||
|
|
||||||
srv = sqlite3_step(stmt);
|
srv = sqlite3_step(stmt);
|
||||||
// we just care about the return value from step
|
(void)sqlite3_finalize(stmt);
|
||||||
sqlite3_finalize(stmt);
|
|
||||||
|
|
||||||
if (srv == SQLITE_ROW) {
|
if (srv == SQLITE_ROW) {
|
||||||
*_retval = PR_TRUE;
|
*_retval = PR_TRUE;
|
||||||
} else if (srv == SQLITE_ERROR) {
|
|
||||||
HandleSqliteError("IndexExists finalize");
|
|
||||||
return NS_ERROR_FAILURE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return ConvertResultCode(srv);
|
return ConvertResultCode(srv);
|
||||||
|
@ -117,7 +117,8 @@ mozStorageStatement::Initialize(mozIStorageConnection *aDBConnection, const nsAC
|
|||||||
int nRetries = 0;
|
int nRetries = 0;
|
||||||
|
|
||||||
while (nRetries < 2) {
|
while (nRetries < 2) {
|
||||||
srv = sqlite3_prepare (db, nsPromiseFlatCString(aSQLStatement).get(), aSQLStatement.Length(), &mDBStatement, NULL);
|
srv = sqlite3_prepare_v2(db, nsPromiseFlatCString(aSQLStatement).get(),
|
||||||
|
aSQLStatement.Length(), &mDBStatement, NULL);
|
||||||
if ((srv == SQLITE_SCHEMA && nRetries != 0) ||
|
if ((srv == SQLITE_SCHEMA && nRetries != 0) ||
|
||||||
(srv != SQLITE_SCHEMA && srv != SQLITE_OK))
|
(srv != SQLITE_SCHEMA && srv != SQLITE_OK))
|
||||||
{
|
{
|
||||||
@ -412,68 +413,39 @@ mozStorageStatement::ExecuteStep(PRBool *_retval)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int nRetries = 0;
|
int srv = sqlite3_step (mDBStatement);
|
||||||
|
|
||||||
while (nRetries < 2) {
|
|
||||||
int srv = sqlite3_step (mDBStatement);
|
|
||||||
|
|
||||||
#ifdef PR_LOGGING
|
#ifdef PR_LOGGING
|
||||||
if (srv != SQLITE_ROW && srv != SQLITE_DONE)
|
if (srv != SQLITE_ROW && srv != SQLITE_DONE)
|
||||||
{
|
{
|
||||||
nsCAutoString errStr;
|
nsCAutoString errStr;
|
||||||
mDBConnection->GetLastErrorString(errStr);
|
mDBConnection->GetLastErrorString(errStr);
|
||||||
PR_LOG(gStorageLog, PR_LOG_DEBUG, ("mozStorageStatement::ExecuteStep error: %s", errStr.get()));
|
PR_LOG(gStorageLog, PR_LOG_DEBUG, ("mozStorageStatement::ExecuteStep error: %s", errStr.get()));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// SQLITE_ROW and SQLITE_DONE are non-errors
|
// SQLITE_ROW and SQLITE_DONE are non-errors
|
||||||
if (srv == SQLITE_ROW) {
|
if (srv == SQLITE_ROW) {
|
||||||
// we got a row back
|
// we got a row back
|
||||||
mExecuting = PR_TRUE;
|
mExecuting = PR_TRUE;
|
||||||
*_retval = PR_TRUE;
|
*_retval = PR_TRUE;
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
} else if (srv == SQLITE_DONE) {
|
} else if (srv == SQLITE_DONE) {
|
||||||
// statement is done (no row returned)
|
// statement is done (no row returned)
|
||||||
mExecuting = PR_FALSE;
|
mExecuting = PR_FALSE;
|
||||||
*_retval = PR_FALSE;
|
*_retval = PR_FALSE;
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
} else if (srv == SQLITE_BUSY ||
|
} else if (srv == SQLITE_BUSY || srv == SQLITE_MISUSE) {
|
||||||
srv == SQLITE_MISUSE)
|
mExecuting = PR_FALSE;
|
||||||
{
|
return NS_ERROR_FAILURE;
|
||||||
mExecuting = PR_FALSE;
|
} else if (mExecuting == PR_TRUE) {
|
||||||
return NS_ERROR_FAILURE;
|
#ifdef PR_LOGGING
|
||||||
} else if (srv == SQLITE_SCHEMA) {
|
PR_LOG(gStorageLog, PR_LOG_ERROR, ("SQLite error after mExecuting was true!"));
|
||||||
// step should never return SQLITE_SCHEMA
|
#endif
|
||||||
NS_NOTREACHED("sqlite3_step returned SQLITE_SCHEMA!");
|
mExecuting = PR_FALSE;
|
||||||
return NS_ERROR_FAILURE;
|
|
||||||
} else if (srv == SQLITE_ERROR) {
|
|
||||||
// so we may end up with a SQLITE_ERROR/SQLITE_SCHEMA only after
|
|
||||||
// we reset, because SQLite's error reporting story
|
|
||||||
// sucks.
|
|
||||||
if (mExecuting == PR_TRUE) {
|
|
||||||
PR_LOG(gStorageLog, PR_LOG_ERROR, ("SQLITE_ERROR after mExecuting was true!"));
|
|
||||||
|
|
||||||
mExecuting = PR_FALSE;
|
|
||||||
return NS_ERROR_FAILURE;
|
|
||||||
}
|
|
||||||
|
|
||||||
srv = sqlite3_reset(mDBStatement);
|
|
||||||
if (srv == SQLITE_SCHEMA) {
|
|
||||||
rv = Recreate();
|
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
|
||||||
|
|
||||||
nRetries++;
|
|
||||||
} else {
|
|
||||||
return NS_ERROR_FAILURE;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// something that shouldn't happen happened
|
|
||||||
NS_ERROR ("sqlite3_step returned an error code we don't know about!");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// shouldn't get here
|
return ConvertResultCode(srv);
|
||||||
return NS_ERROR_FAILURE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* [noscript,notxpcom] sqlite3stmtptr getNativeStatementPointer(); */
|
/* [noscript,notxpcom] sqlite3stmtptr getNativeStatementPointer(); */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user