--- a/persistentstorage/sql/SRC/Server/SqlSrvStatementUtil.cpp Tue Aug 31 16:57:14 2010 +0300
+++ b/persistentstorage/sql/SRC/Server/SqlSrvStatementUtil.cpp Wed Sep 01 12:39:58 2010 +0100
@@ -18,16 +18,11 @@
#include <sqldb.h>
#include "sqlite3.h"
#include "SqlSrvStatementUtil.h"
-#include "SqlAssert.h"
+#include "SqlPanic.h"
#include "SqlSrvUtil.h"
#include "SqlUtil.h"
#include "SqliteSymbian.h" //sqlite3SymbianLastOsError()
-#include "OstTraceDefinitions.h"
#include "SqlSrvResourceProfiler.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "SqlSrvStatementUtilTraces.h"
-#endif
-#include "SqlTraceDef.h"
//The database names in all statements are quoted to avoid the "sql injection" threat.
_LIT8(KPageCountPragma, "PRAGMA \"%S\".page_count\x0");
@@ -40,6 +35,109 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
+#ifdef _NOTIFY
+static void PrintErrMsg8(TBool aCondition, sqlite3* aDbHandle, const char* aFuncNameZ, const TDesC8& aStmt)
+ {
+ if(!aCondition)
+ {
+ return;
+ }
+ TPtrC8 funcName8(reinterpret_cast <const TUint8*> (aFuncNameZ));
+ TBuf<32> funcName;
+ funcName.Copy(funcName8);
+ RDebug::Print(_L("###%S\r\n"), &funcName);
+ TInt stmtLen = aStmt.Length();
+ if(stmtLen > 0)
+ {
+ if(aStmt[stmtLen - 1] == 0)
+ {
+ --stmtLen;
+ }
+ HBufC* buf = HBufC::New(stmtLen);
+ if(buf)
+ {
+ TPtr sqlStmt = buf->Des();
+ sqlStmt.Copy(aStmt.Left(stmtLen));
+ if(sqlStmt.Length() > 250)
+ {
+ sqlStmt.SetLength(250);
+ }
+ RDebug::Print(_L("###\"%S\"\r\n"), &sqlStmt);
+ delete buf;
+ }
+ }
+ TBuf<16> tbuf;
+ Util::GetTimeStr(tbuf);
+ const void* errMsg = sqlite3_errmsg16(aDbHandle);//"errMsg" - zero terminated string
+ if(errMsg)
+ {
+ TPtrC msg(reinterpret_cast <const TText16*> (errMsg));//terminating zero character excluded.
+ if(msg.Length() > 230)
+ {
+ msg.Set(msg.Left(230));
+ }
+ RDebug::Print(_L("##%S#ErrMsg=%S\r\n"), &tbuf, &msg);
+ }
+ else
+ {
+ RDebug::Print(_L("##%S#ErrMsg=null\r\n"), &tbuf);
+ }
+ }
+
+static void PrintErrMsg16(TBool aCondition, sqlite3* aDbHandle, const char* aFuncNameZ, const TDesC16& aStmt)
+ {
+ if(!aCondition)
+ {
+ return;
+ }
+ TPtrC8 funcName8(reinterpret_cast <const TUint8*> (aFuncNameZ));
+ TBuf<32> funcName;
+ funcName.Copy(funcName8);
+ RDebug::Print(_L("###%S\r\n"), &funcName);
+ TInt stmtLen = aStmt.Length();
+ if(stmtLen > 0)
+ {
+ if(aStmt[stmtLen - 1] == 0)
+ {
+ --stmtLen;
+ }
+ TPtrC sqlStmt(aStmt.Ptr(), stmtLen);
+ if(sqlStmt.Length() > 250)
+ {
+ sqlStmt.Set(sqlStmt.Left(250));
+ }
+ RDebug::Print(_L("###\"%S\"\r\n"), &sqlStmt);
+ }
+ TBuf<16> tbuf;
+ Util::GetTimeStr(tbuf);
+ const void* errMsg = sqlite3_errmsg16(aDbHandle);//"errMsg" - zero terminated string
+ if(errMsg)
+ {
+ TPtrC msg(reinterpret_cast <const TText16*> (errMsg));//terminating zero character excluded.
+ if(msg.Length() > 230)
+ {
+ msg.Set(msg.Left(230));
+ }
+ RDebug::Print(_L("##%S#ErrMsg=%S\r\n"), &tbuf, &msg);
+ }
+ else
+ {
+ RDebug::Print(_L("##%S#ErrMsg=null\r\n"), &tbuf);
+ }
+ }
+
+#define PRINT_ERRMSG8(Condition, DbHandle, FuncNameZ, Stmt) PrintErrMsg8(Condition, DbHandle, FuncNameZ, Stmt)
+#define PRINT_ERRMSG16(Condition, DbHandle, FuncNameZ, Stmt) PrintErrMsg16(Condition, DbHandle, FuncNameZ, Stmt)
+
+#else //_NOTIFY
+
+#define PRINT_ERRMSG8(Condition, DbHandle, FuncNameZ, Stmt)
+#define PRINT_ERRMSG16(Condition, DbHandle, FuncNameZ, Stmt)
+
+#endif //_NOTIFY
+
+///////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
//Calls sqlite3_open16() to create or open database file with aFileNameZ.
//aFileNameZ is UTF16 encoded, zero-terminated.
//The function returns system-wide errors or database specific errors.
@@ -48,7 +146,7 @@
{
(void)sqlite3SymbianLastOsError();//clear last OS error
TInt err = sqlite3_open16(aFileNameZ.Ptr(), &aDbHandle);
- __ASSERT_DEBUG(err == SQLITE_OK ? aDbHandle != NULL : ETrue, __SQLPANIC2(ESqlPanicInternalError));
+ __SQLASSERT(err == SQLITE_OK ? aDbHandle != NULL : ETrue, ESqlPanicInternalError);
if(err == SQLITE_OK)
{
(void)sqlite3_extended_result_codes(aDbHandle, 0);
@@ -71,7 +169,7 @@
{
(void)sqlite3SymbianLastOsError();//clear last OS error
TInt err = sqlite3_open((const char *) aFileNameZ.Ptr(), &aDbHandle);
- __ASSERT_DEBUG(err == SQLITE_OK ? aDbHandle != NULL : ETrue, __SQLPANIC2(ESqlPanicInternalError));
+ __SQLASSERT(err == SQLITE_OK ? aDbHandle != NULL : ETrue, ESqlPanicInternalError);
if(err == SQLITE_OK)
{
(void)sqlite3_extended_result_codes(aDbHandle, 0);
@@ -104,15 +202,15 @@
//If the function fails then it returns one of the SQLITE error codes.
static TInt DoSingleStmtExec16(sqlite3 *aDbHandle, const TDesC16& aSql)
{
- __ASSERT_DEBUG(aDbHandle != NULL, __SQLPANIC2(ESqlPanicInvalidObj));
- __ASSERT_DEBUG(aSql.Length() > 0 ? (TInt)aSql[aSql.Length() - 1] == 0 : ETrue, __SQLPANIC2(ESqlPanicBadArgument));
+ __SQLASSERT(aDbHandle != NULL, ESqlPanicInvalidObj);
+ __SQLASSERT(aSql.Length() > 0 ? (TInt)aSql[aSql.Length() - 1] == 0 : ETrue, ESqlPanicBadArgument);
sqlite3_stmt* stmtHandle = NULL;
const void* stmtTail = NULL;
//sqlite3_prepare16_v2() expects parameter #3 to be one of the following:
// - byte length of the sql statement (parameter #2), excluding terminating zero;
// - negative value - the sql statement (parameter #2) is zero-terminated;
TInt err = sqlite3_prepare16_v2(aDbHandle, aSql.Ptr(), aSql.Length() * sizeof(TUint16) - sizeof(TUint16), &stmtHandle, &stmtTail);
- __ASSERT_DEBUG(err == SQLITE_OK ? !stmtTail || User::StringLength((const TUint16*)stmtTail) == 0 : !stmtHandle, __SQLPANIC2(ESqlPanicInternalError));
+ __SQLASSERT(err == SQLITE_OK ? !stmtTail || User::StringLength((const TUint16*)stmtTail) == 0 : !stmtHandle, ESqlPanicInternalError);
if(stmtHandle) //stmtHandle can be NULL for statements like this: ";".
{
if(err == SQLITE_OK)
@@ -123,7 +221,7 @@
if(err == SQLITE_ERROR) //It may be "out of memory" problem
{
err = sqlite3_reset(stmtHandle);
- __ASSERT_DEBUG(err != SQLITE_OK, __SQLPANIC2(ESqlPanicInternalError));
+ __SQLASSERT(err != SQLITE_OK, ESqlPanicInternalError);
}
}
(void)sqlite3_finalize(stmtHandle);//sqlite3_finalize() fails only if an invalid statement handle is passed.
@@ -202,13 +300,10 @@
@internalComponent
*/
-TInt DbExecStmt16(sqlite3* aDbHandle, TDes16& aSqlStmt)
+TInt DbExecStmt16(sqlite3 *aDbHandle, TDes16& aSqlStmt)
{
- __SQLTRACE_INTERNALSEXPR(TPtrC sqlprnptr(aSqlStmt.Left(aSqlStmt.Length() - 1)));
- SQL_TRACE_INTERNALS(OstTraceExt2(TRACE_INTERNALS, DBEXECSTMT16_ENTRY, "Entry;0x%X;DbExecStmt16;sql=%S", (TUint)aDbHandle, __SQLPRNSTR(sqlprnptr)));
-
- __ASSERT_DEBUG(aDbHandle != NULL, __SQLPANIC2(ESqlPanicInternalError));
- __ASSERT_DEBUG(aSqlStmt.Length() > 0 ? (TInt)aSqlStmt[aSqlStmt.Length() - 1] == 0: ETrue, __SQLPANIC2(ESqlPanicBadArgument));
+ __SQLASSERT(aDbHandle != NULL, ESqlPanicInternalError);
+ __SQLASSERT(aSqlStmt.Length() > 0 ? (TInt)aSqlStmt[aSqlStmt.Length() - 1] == 0: ETrue, ESqlPanicBadArgument);
(void)sqlite3SymbianLastOsError();//clear last OS error
@@ -230,7 +325,7 @@
{
err = KErrNone;
}
- SQL_TRACE_INTERNALS(OstTraceExt2(TRACE_INTERNALS, DBEXECSTMT16_EXIT, "Exit;0x%X;DbExecStmt16;err=%d", (TUint)aDbHandle, err));
+ PRINT_ERRMSG16(err <= KSqlErrGeneral, aDbHandle, "DbExecStmt16()", aSqlStmt);
return err;
}
@@ -254,14 +349,10 @@
@internalComponent
*/
-TInt DbExecStmt8(sqlite3* aDbHandle, const TDesC8& aSqlStmt)
+TInt DbExecStmt8(sqlite3 *aDbHandle, const TDesC8& aSqlStmt)
{
- __SQLTRACE_INTERNALSEXPR(TPtrC8 sqlprnptr(aSqlStmt.Left(aSqlStmt.Length() - 1)));
- __SQLTRACE_INTERNALSVAR(TBuf<100> des16prnbuf);
- SQL_TRACE_INTERNALS(OstTraceExt2(TRACE_INTERNALS, DBEXECSTMT8_ENTRY, "Entry;0x%X;DbExecStmt8;sql=%s", (TUint)aDbHandle, __SQLPRNSTR8(sqlprnptr, des16prnbuf)));
-
- __ASSERT_DEBUG(aDbHandle != NULL, __SQLPANIC2(ESqlPanicInternalError));
- __ASSERT_DEBUG(aSqlStmt.Length() > 0 ? (TInt)aSqlStmt[aSqlStmt.Length() - 1] == 0: ETrue, __SQLPANIC2(ESqlPanicBadArgument));
+ __SQLASSERT(aDbHandle != NULL, ESqlPanicInternalError);
+ __SQLASSERT(aSqlStmt.Length() > 0 ? (TInt)aSqlStmt[aSqlStmt.Length() - 1] == 0: ETrue, ESqlPanicBadArgument);
SQLPROFILER_SQL8_PRINT((TUint)aDbHandle, aSqlStmt.Left(aSqlStmt.Length() - 1), EFalse);
@@ -274,7 +365,7 @@
{
err = KErrNone;
}
- SQL_TRACE_INTERNALS(OstTraceExt2(TRACE_INTERNALS, DBEXECSTMT8_EXIT, "Exit;0x%X;DbExecStmt8;err=%d", (TUint)aDbHandle, err));
+ PRINT_ERRMSG8(err <= KSqlErrGeneral, aDbHandle, "DbExecStmt8()", aSqlStmt);
return err;
}
@@ -294,7 +385,8 @@
// - negative value - the sql statement (parameter #2) is zero-terminated;
TInt err = sqlite3_prepare16_v2(aDbHandle, aStmt.Ptr(), aStmt.Length() * sizeof(TUint16) - sizeof(TUint16), aStmtHandle, &stmtTail);
aHasTail = stmtTail && static_cast <const TUint16*> (stmtTail)[0] != 0;
- __ASSERT_DEBUG(err != SQLITE_OK ? !(*aStmtHandle) : ETrue, __SQLPANIC2(ESqlPanicInternalError));
+ PRINT_ERRMSG16(err != SQLITE_OK, aDbHandle, "DoPrepareStmt16()", aStmt);
+ __SQLASSERT(err != SQLITE_OK ? !(*aStmtHandle) : ETrue, ESqlPanicInternalError);
//(*aStmtHandle) is NULL for ";" statements, when err == SQLITE_OK. Since the server should not panic
//that situation is handled later (not inside the assert above)
return err;
@@ -312,7 +404,8 @@
// - negative value - the sql statement (parameter #2) is zero-terminated;
TInt err = sqlite3_prepare_v2(aDbHandle, reinterpret_cast <const char*> (aStmt), -1, aStmtHandle, &stmtTail);
aHasTail = stmtTail && stmtTail[0] != 0;
- __ASSERT_DEBUG(err != SQLITE_OK ? !(*aStmtHandle) : ETrue, __SQLPANIC2(ESqlPanicInternalError));
+ PRINT_ERRMSG8(err != SQLITE_OK, aDbHandle, "DoPrepareStmt8()", TPtrC8(aStmt, aStmt ? User::StringLength(aStmt) : 0));
+ __SQLASSERT(err != SQLITE_OK ? !(*aStmtHandle) : ETrue, ESqlPanicInternalError);
//(*aStmtHandle) is NULL for ";" statements, when err == SQLITE_OK. Since the server should not panic
//that situation is handled later (not inside the assert above)
return err;
@@ -358,7 +451,7 @@
//
static void LeaveIfPrepareErrorL(TInt aSqliteError, TBool aHasTail, sqlite3_stmt* aStmtHandle)
{
- __SQLLEAVE_IF_ERROR2(ProcessPrepareError(aSqliteError, aHasTail, aStmtHandle));
+ __SQLLEAVE_IF_ERROR(ProcessPrepareError(aSqliteError, aHasTail, aStmtHandle));
}
/**
@@ -376,14 +469,13 @@
*/
sqlite3_stmt* StmtPrepare16L(sqlite3* aDbHandle, const TDesC16& aSqlStmt)
{
- __SQLTRACE_INTERNALSEXPR(TPtrC sqlprnptr(aSqlStmt.Left(aSqlStmt.Length() - 1)));
- SQL_TRACE_INTERNALS(OstTraceExt2(TRACE_INTERNALS, STMTPREPARE16L_ENTRY, "Entry;0x%X;StmtPrepare16L;sql=%S", (TUint)aDbHandle, __SQLPRNSTR(sqlprnptr)));
+ SQLPROFILER_SQL16_PRINT((TUint)aDbHandle, aSqlStmt.Left(aSqlStmt.Length() - 1), ETrue);
+
(void)sqlite3SymbianLastOsError();//clear last OS error
TBool hasTail = EFalse;
sqlite3_stmt* stmtHandle = NULL;
TInt err = DoPrepareStmt16(aDbHandle, aSqlStmt, &stmtHandle, hasTail);
LeaveIfPrepareErrorL(err, hasTail, stmtHandle);
- SQL_TRACE_INTERNALS(OstTraceExt2(TRACE_INTERNALS, STMTPREPARE16L_EXIT, "Exit;0x%X;StmtPrepare16L;stmtHandle=0x%X", (TUint)aDbHandle, (TUint)stmtHandle));
return stmtHandle;
}
@@ -402,15 +494,12 @@
*/
TInt StmtPrepare8(sqlite3* aDbHandle, const TDesC8& aSqlStmt, sqlite3_stmt*& aStmtHandle)
{
- __SQLTRACE_INTERNALSEXPR(TPtrC8 sqlprnptr(aSqlStmt.Left(aSqlStmt.Length() - 1)));
- __SQLTRACE_INTERNALSVAR(TBuf<100> des16prnbuf);
- SQL_TRACE_INTERNALS(OstTraceExt2(TRACE_INTERNALS, STMTPREPARE8_ENTRY, "Entry;0x%X;StmtPrepare8;sql=%s", (TUint)aDbHandle, __SQLPRNSTR8(sqlprnptr, des16prnbuf)));
+ SQLPROFILER_SQL8_PRINT((TUint)aDbHandle, aSqlStmt.Left(aSqlStmt.Length() - 1), ETrue);
+
(void)sqlite3SymbianLastOsError();//clear last OS error
TBool hasTail = EFalse;
TInt err = DoPrepareStmt8(aDbHandle, aSqlStmt.Ptr(), &aStmtHandle, hasTail);
- err = ProcessPrepareError(err, hasTail, aStmtHandle);
- SQL_TRACE_INTERNALS(OstTraceExt3(TRACE_INTERNALS, STMTPREPARE8_EXIT, "Exit;0x%X;StmtPrepare8;aStmtHandle=0x%X;err=%d", (TUint)aDbHandle, (TUint)aStmtHandle, err));
- return err;
+ return ProcessPrepareError(err, hasTail, aStmtHandle);
}
/**
@@ -428,15 +517,13 @@
*/
sqlite3_stmt* StmtPrepare8L(sqlite3* aDbHandle, const TDesC8& aSqlStmt)
{
- __SQLTRACE_INTERNALSEXPR(TPtrC8 sqlprnptr(aSqlStmt.Left(aSqlStmt.Length() - 1)));
- __SQLTRACE_INTERNALSVAR(TBuf<100> des16prnbuf);
- SQL_TRACE_INTERNALS(OstTraceExt2(TRACE_INTERNALS, STMTPREPARE8L_ENTRY, "Entry;0x%X;StmtPrepare8L;sql=%s", (TUint)aDbHandle, __SQLPRNSTR8(sqlprnptr, des16prnbuf)));
+ SQLPROFILER_SQL8_PRINT((TUint)aDbHandle, aSqlStmt.Left(aSqlStmt.Length() - 1), ETrue);
+
(void)sqlite3SymbianLastOsError();//clear last OS error
TBool hasTail = EFalse;
sqlite3_stmt* stmtHandle = NULL;
TInt err = DoPrepareStmt8(aDbHandle, aSqlStmt.Ptr(), &stmtHandle, hasTail);
LeaveIfPrepareErrorL(err, hasTail, stmtHandle);
- SQL_TRACE_INTERNALS(OstTraceExt2(TRACE_INTERNALS, STMTPREPARE8L_EXIT, "Exit;0x%X;StmtPrepare8L;stmtHandle=0x%X", (TUint)aDbHandle, (TUint)stmtHandle));
return stmtHandle;
}
@@ -457,11 +544,10 @@
*/
TInt StmtExec(sqlite3_stmt* aStmtHandle)
{
- SQL_TRACE_INTERNALS(OstTraceExt2(TRACE_INTERNALS, STMTEXEC_ENTRY, "Entry;0x%X;StmtExec;aStmtHandle=0x%X", (TUint)sqlite3_db_handle(aStmtHandle), (TUint)aStmtHandle));
- __ASSERT_DEBUG(aStmtHandle != NULL, __SQLPANIC2(ESqlPanicInvalidObj));
+ __SQLASSERT(aStmtHandle != NULL, ESqlPanicInvalidObj);
(void)sqlite3SymbianLastOsError();//clear last OS error
-
+
TInt err;
while((err = sqlite3_step(aStmtHandle)) == SQLITE_ROW)
{
@@ -470,7 +556,7 @@
if(err == SQLITE_ERROR) //It may be "out of memory" problem
{
err = sqlite3_reset(aStmtHandle);
- __ASSERT_DEBUG(err != SQLITE_OK, __SQLPANIC2(ESqlPanicInternalError));
+ __SQLASSERT(err != SQLITE_OK, ESqlPanicInternalError);
}
err = ::Sql2OsErrCode(err, sqlite3SymbianLastOsError());
@@ -479,7 +565,7 @@
err = KErrNone;
}
- SQL_TRACE_INTERNALS(OstTraceExt3(TRACE_INTERNALS, STMTEXEC_EXIT, "Exit;0x%X;StmtExec;aStmtHandle=0x%X;err=%d", (TUint)sqlite3_db_handle(aStmtHandle), (TUint)aStmtHandle, err));
+ PRINT_ERRMSG16(err <= KSqlErrGeneral, sqlite3_db_handle(aStmtHandle), "StmtExec()", _L(" "));
return err;
}
@@ -502,8 +588,7 @@
*/
TInt StmtNext(sqlite3_stmt* aStmtHandle)
{
- SQL_TRACE_INTERNALS(OstTraceExt2(TRACE_INTERNALS, STMTNEXT_ENTRY, "Entry;0x%X;StmtNext;aStmtHandle=0x%X", (TUint)sqlite3_db_handle(aStmtHandle), (TUint)aStmtHandle));
- __ASSERT_DEBUG(aStmtHandle != NULL, __SQLPANIC2(ESqlPanicInvalidObj));
+ __SQLASSERT(aStmtHandle != NULL, ESqlPanicInvalidObj);
(void)sqlite3SymbianLastOsError();//clear last OS error
@@ -511,10 +596,10 @@
if(err == SQLITE_ERROR) //It may be "out of memory" problem
{
err = sqlite3_reset(aStmtHandle);
- __ASSERT_DEBUG(err != SQLITE_OK, __SQLPANIC2(ESqlPanicInternalError));
+ __SQLASSERT(err != SQLITE_OK, ESqlPanicInternalError);
}
err = ::Sql2OsErrCode(err, sqlite3SymbianLastOsError());
- SQL_TRACE_INTERNALS(OstTraceExt3(TRACE_INTERNALS, STMTNEXT_EXIT, "Exit;0x%X;StmtNext;aStmtHandle=0x%X;err=%d", (TUint)sqlite3_db_handle(aStmtHandle), (TUint)aStmtHandle, err));
+ PRINT_ERRMSG16(err <= KSqlErrGeneral, sqlite3_db_handle(aStmtHandle), "StmtNext()", _L(" "));
return err;
}
@@ -532,15 +617,12 @@
*/
TInt StmtReset(sqlite3_stmt* aStmtHandle)
{
- SQL_TRACE_INTERNALS(OstTraceExt2(TRACE_INTERNALS, STMTRESET_ENTRY, "Entry;0x%X;StmtReset;aStmtHandle=0x%X", (TUint)sqlite3_db_handle(aStmtHandle), (TUint)aStmtHandle));
- __ASSERT_DEBUG(aStmtHandle != NULL, __SQLPANIC2(ESqlPanicInvalidObj));
+ __SQLASSERT(aStmtHandle != NULL, ESqlPanicInvalidObj);
(void)sqlite3SymbianLastOsError();//clear last OS error
TInt err = sqlite3_reset(aStmtHandle);
- err = ::Sql2OsErrCode(err, sqlite3SymbianLastOsError());
- SQL_TRACE_INTERNALS(OstTraceExt3(TRACE_INTERNALS, STMTRESET_EXIT, "Exit;0x%X;StmtReset;aStmtHandle=0x%X;err=%d", (TUint)sqlite3_db_handle(aStmtHandle), (TUint)aStmtHandle, err));
- return err;
+ return ::Sql2OsErrCode(err, sqlite3SymbianLastOsError());
}
/**
@@ -562,16 +644,12 @@
*/
static TInt PreRetrievePragmaValue(sqlite3* aDbHandle, const TDesC& aDbName, const TDesC8& aPragmaSql, sqlite3_stmt*& aStmtHandle)
{
- __SQLTRACE_INTERNALSEXPR(TPtrC8 sqlprnptr(aPragmaSql.Left(aPragmaSql.Length() - 1)));
- __SQLTRACE_INTERNALSVAR(TBuf<100> des16prnbuf);
- SQL_TRACE_INTERNALS(OstTraceExt3(TRACE_INTERNALS, PRERETRIEVEPRAGMAVALUE_ENTRY, "Entry;0x%X;PreRetrievePragmaValue;aDbName=%S;aPragmaSql=%s", (TUint)aDbHandle, __SQLPRNSTR(aDbName), __SQLPRNSTR8(sqlprnptr, des16prnbuf)));
- __ASSERT_DEBUG(aDbHandle != NULL, __SQLPANIC2(ESqlPanicInternalError));
- __ASSERT_DEBUG(aPragmaSql.Length() > 0, __SQLPANIC2(ESqlPanicBadArgument));
- __ASSERT_DEBUG(aPragmaSql[aPragmaSql.Length() - 1] == 0, __SQLPANIC2(ESqlPanicBadArgument));
+ __SQLASSERT(aDbHandle != NULL, ESqlPanicInternalError);
+ __SQLASSERT(aPragmaSql.Length() > 0, ESqlPanicBadArgument);
+ __SQLASSERT(aPragmaSql[aPragmaSql.Length() - 1] == 0, ESqlPanicBadArgument);
TBuf8<KMaxFileName> dbName;
if(!UTF16ToUTF8(aDbName, dbName))
{
- SQL_TRACE_INTERNALS(OstTrace1(TRACE_INTERNALS, PRERETRIEVEPRAGMAVALUE_EXIT1, "Exit;0x%X;PreRetrievePragmaValue;err=KErrGeneral", (TUint)aDbHandle));
return KErrGeneral;
}
TBuf8<KMaxFileName + 64> sql;//64 characters is enough for the longest PRAGMA statement
@@ -587,10 +665,10 @@
TInt err = ::StmtPrepare8(aDbHandle, sql, aStmtHandle);
if(err == KErrNone)
{
- __ASSERT_DEBUG(aStmtHandle != NULL, __SQLPANIC2(ESqlPanicInvalidObj));
+ __SQLASSERT(aStmtHandle != NULL, ESqlPanicInvalidObj);
err = ::StmtNext(aStmtHandle);
}
- SQL_TRACE_INTERNALS(OstTraceExt3(TRACE_INTERNALS, PRERETRIEVEPRAGMAVALUE_EXIT2, "Exit;0x%X;PreRetrievePragmaValue;aStmtHandle=0x%X;err=%d", (TUint)aDbHandle, (TUint)aStmtHandle, err));
+ PRINT_ERRMSG8(err <= KSqlErrGeneral, aDbHandle, "PreRetrievePragmaValue()", sql);
return err;
}
@@ -613,9 +691,9 @@
*/
static TInt RetrievePragmaValue(sqlite3* aDbHandle, const TDesC& aDbName, const TDesC8& aPragmaSql, TInt& aPragmaValue)
{
- __ASSERT_DEBUG(aDbHandle != NULL, __SQLPANIC2(ESqlPanicInternalError));
- __ASSERT_DEBUG(aPragmaSql.Length() > 0, __SQLPANIC2(ESqlPanicBadArgument));
- __ASSERT_DEBUG(aPragmaSql[aPragmaSql.Length() - 1] == 0, __SQLPANIC2(ESqlPanicBadArgument));
+ __SQLASSERT(aDbHandle != NULL, ESqlPanicInternalError);
+ __SQLASSERT(aPragmaSql.Length() > 0, ESqlPanicBadArgument);
+ __SQLASSERT(aPragmaSql[aPragmaSql.Length() - 1] == 0, ESqlPanicBadArgument);
sqlite3_stmt* stmtHandle = NULL;
TInt err = PreRetrievePragmaValue(aDbHandle, aDbName, aPragmaSql, stmtHandle);
if(err == KSqlAtRow)
@@ -646,9 +724,9 @@
*/
static TInt RetrievePragmaValue(sqlite3* aDbHandle, const TDesC& aDbName, const TDesC8& aPragmaSql, TDes8& aPragmaValue)
{
- __ASSERT_DEBUG(aDbHandle != NULL, __SQLPANIC2(ESqlPanicInternalError));
- __ASSERT_DEBUG(aPragmaSql.Length() > 0, __SQLPANIC2(ESqlPanicBadArgument));
- __ASSERT_DEBUG(aPragmaSql[aPragmaSql.Length() - 1] == 0, __SQLPANIC2(ESqlPanicBadArgument));
+ __SQLASSERT(aDbHandle != NULL, ESqlPanicInternalError);
+ __SQLASSERT(aPragmaSql.Length() > 0, ESqlPanicBadArgument);
+ __SQLASSERT(aPragmaSql[aPragmaSql.Length() - 1] == 0, ESqlPanicBadArgument);
sqlite3_stmt* stmtHandle = NULL;
TInt err = PreRetrievePragmaValue(aDbHandle, aDbName, aPragmaSql, stmtHandle);
if(err == KSqlAtRow)
@@ -678,7 +756,7 @@
*/
TInt DbPageCount(sqlite3* aDbHandle, const TDesC& aDbName, TInt& aPageCount)
{
- __ASSERT_DEBUG(aDbHandle != NULL, __SQLPANIC2(ESqlPanicInternalError));
+ __SQLASSERT(aDbHandle != NULL, ESqlPanicInternalError);
return RetrievePragmaValue(aDbHandle, aDbName, KPageCountPragma, aPageCount);
}
@@ -699,7 +777,7 @@
*/
TInt DbPageSize(sqlite3* aDbHandle, const TDesC& aDbName, TInt& aPageSize)
{
- __ASSERT_DEBUG(aDbHandle != NULL, __SQLPANIC2(ESqlPanicInternalError));
+ __SQLASSERT(aDbHandle != NULL, ESqlPanicInternalError);
return RetrievePragmaValue(aDbHandle, aDbName, KPageSizePragma, aPageSize);
}
@@ -720,7 +798,7 @@
*/
TInt DbCacheSize(sqlite3* aDbHandle, const TDesC& aDbName, TInt& aCacheSize)
{
- __ASSERT_DEBUG(aDbHandle != NULL, __SQLPANIC2(ESqlPanicInternalError));
+ __SQLASSERT(aDbHandle != NULL, ESqlPanicInternalError);
return RetrievePragmaValue(aDbHandle, aDbName, KCacheSizePragma, aCacheSize);
}
@@ -741,7 +819,7 @@
*/
TInt DbEncoding(sqlite3* aDbHandle, const TDesC& aDbName, TDes8& aEncoding)
{
- __ASSERT_DEBUG(aDbHandle != NULL, __SQLPANIC2(ESqlPanicInternalError));
+ __SQLASSERT(aDbHandle != NULL, ESqlPanicInternalError);
return RetrievePragmaValue(aDbHandle, aDbName, KEncodingPragma, aEncoding);
}
@@ -762,7 +840,7 @@
*/
TInt DbFreePageCount(sqlite3* aDbHandle, const TDesC& aDbName, TInt& aPageCount)
{
- __ASSERT_DEBUG(aDbHandle != NULL, __SQLPANIC2(ESqlPanicInternalError));
+ __SQLASSERT(aDbHandle != NULL, ESqlPanicInternalError);
return RetrievePragmaValue(aDbHandle, aDbName, KFreePageCountPragma, aPageCount);
}
@@ -783,13 +861,13 @@
*/
TInt DbVacuumMode(sqlite3* aDbHandle, const TDesC& aDbName, TInt& aVacuumMode)
{
- __ASSERT_DEBUG(aDbHandle != NULL, __SQLPANIC2(ESqlPanicInternalError));
+ __SQLASSERT(aDbHandle != NULL, ESqlPanicInternalError);
return RetrievePragmaValue(aDbHandle, aDbName, KVacuumModePragma, aVacuumMode);
}
static TBool IsCompactTimeLimitReached(TUint32 aStartTicks, TUint32 aCurrTicks, TInt aMaxTime)
{
- __ASSERT_DEBUG(aMaxTime > 0, __SQLPANIC2(ESqlPanicBadArgument));
+ __SQLASSERT(aMaxTime > 0, ESqlPanicBadArgument);
TInt64 tickDiff64 = (TInt64)aCurrTicks - (TInt64)aStartTicks;
if(tickDiff64 < 0)
{
@@ -800,7 +878,6 @@
if(freq == 0)
{
err = HAL::Get(HAL::EFastCounterFrequency, freq);
- SQL_TRACE_INTERNALS(OstTraceExt2(TRACE_INTERNALS, ISCOMPACTTIMELIMITREACHED, "0;IsCompactTimeLimitReached;fast counter frequency=%d;err=%d", freq, err));
}
if(err == KErrNone && freq > 0)
{
@@ -835,14 +912,12 @@
*/
TInt DbCompact(sqlite3* aDbHandle, const TDesC& aDbName, TInt aPageCount, TInt& aProcessedPageCount, TInt aMaxTime)
{
- SQL_TRACE_INTERNALS(OstTraceExt4(TRACE_INTERNALS, DBCOMPACT_ENTRY, "Entry;0x%X;DbCompact;aDbName=%S;aPageCount=%d;aMaxTime=%d", (TUint)aDbHandle, __SQLPRNSTR(aDbName), aPageCount, aMaxTime));
- __ASSERT_DEBUG(aPageCount >= 0, __SQLPANIC2(ESqlPanicBadArgument));
- __ASSERT_DEBUG(aMaxTime >= 0, __SQLPANIC2(ESqlPanicBadArgument));
- __ASSERT_DEBUG(aDbHandle != NULL, __SQLPANIC2(ESqlPanicInternalError));
+ __SQLASSERT(aPageCount >= 0, ESqlPanicBadArgument);
+ __SQLASSERT(aMaxTime >= 0, ESqlPanicBadArgument);
+ __SQLASSERT(aDbHandle != NULL, ESqlPanicInternalError);
TBuf8<KMaxFileName> dbName;
if(!UTF16ToUTF8(aDbName, dbName))
{
- SQL_TRACE_INTERNALS(OstTrace1(TRACE_INTERNALS, DBCOMPACT_EXIT1, "Exit;0x%X;DbCompact;err=KErrGeneral", (TUint)aDbHandle));
return KErrGeneral;
}
TBuf8<KMaxFileName + sizeof(KIncrementalVacuumPragma) + 1> sql;
@@ -866,7 +941,7 @@
// - byte length of the sql statement (parameter #2), excluding terminating zero;
// - negative value - the sql statement (parameter #2) is zero-terminated;
TInt err = sqlite3_prepare_v2(aDbHandle, (const char*)sql.Ptr(), sql.Length() - sizeof(TUint8), &stmtHandle, &stmtTail);
- __ASSERT_DEBUG(err == SQLITE_OK ? !stmtTail || User::StringLength((const TUint8*)stmtTail) == 0 : !stmtHandle, __SQLPANIC2(ESqlPanicInternalError));
+ __SQLASSERT(err == SQLITE_OK ? !stmtTail || User::StringLength((const TUint8*)stmtTail) == 0 : !stmtHandle, ESqlPanicInternalError);
if(stmtHandle) //stmtHandle can be NULL for statements like this: ";".
{
if(err == SQLITE_OK)
@@ -888,7 +963,7 @@
if(err == SQLITE_ERROR) //It may be "out of memory" problem
{
err = sqlite3_reset(stmtHandle);
- __ASSERT_DEBUG(err != SQLITE_OK, __SQLPANIC2(ESqlPanicInternalError));
+ __SQLASSERT(err != SQLITE_OK, ESqlPanicInternalError);
}
}
(void)sqlite3_finalize(stmtHandle);//sqlite3_finalize() fails only if an invalid statement handle is passed.
@@ -898,7 +973,7 @@
{
err = KErrNone;
}
- SQL_TRACE_INTERNALS(OstTraceExt3(TRACE_INTERNALS, DBCOMPACT_EXIT2, "Exit;0x%X;DbCompact;aProcessedPageCount=%d;err=%d", (TUint)aDbHandle, aProcessedPageCount, err));
+ PRINT_ERRMSG8(err <= KSqlErrGeneral, aDbHandle, "DbCompact()", sql);
return err;
}
@@ -914,7 +989,6 @@
*/
TInt FinalizeStmtHandle(sqlite3_stmt* aStmtHandle)
{
- SQL_TRACE_INTERNALS(OstTraceExt2(TRACE_INTERNALS, FINALIZESTMTHANDLE_ENTRY, "Entry;0x%X;FinalizeStmtHandle;aStmtHandle=0x%X", (TUint)sqlite3_db_handle(aStmtHandle), (TUint)aStmtHandle));
TInt err = KErrNone;
if(aStmtHandle)
{
@@ -922,6 +996,5 @@
err = sqlite3_finalize(aStmtHandle);
err = ::Sql2OsErrCode(err, sqlite3SymbianLastOsError());
}
- SQL_TRACE_INTERNALS(OstTrace1(TRACE_INTERNALS, FINALIZESTMTHANDLE_EXIT, "Exit;0;FinalizeStmtHandle;err=%d", err));
return err;
}