64 _LIT(KCacheSizePragma, "PRAGMA \"%S\".cache_size=%d\x0"); |
64 _LIT(KCacheSizePragma, "PRAGMA \"%S\".cache_size=%d\x0"); |
65 _LIT(KPageSizePragma, "PRAGMA \"%S\".page_size=%d\x0"); |
65 _LIT(KPageSizePragma, "PRAGMA \"%S\".page_size=%d\x0"); |
66 _LIT(KAutoVacuumPragma, "PRAGMA \"%S\".auto_vacuum=%d\x0"); |
66 _LIT(KAutoVacuumPragma, "PRAGMA \"%S\".auto_vacuum=%d\x0"); |
67 //_LIT(KPersist, "persist"); |
67 //_LIT(KPersist, "persist"); |
68 //_LIT(KPersistentJournalPragma, "PRAGMA \"%S\".journal_mode=%S\x0"); |
68 //_LIT(KPersistentJournalPragma, "PRAGMA \"%S\".journal_mode=%S\x0"); |
|
69 _LIT(KJournalSizeLimitPragma, "PRAGMA \"%S\".journal_size_limit=%d\x0"); |
69 //////////////////////////////////////////////////////// |
70 //////////////////////////////////////////////////////// |
70 //"LIKE" - user defined function name |
71 //"LIKE" - user defined function name |
71 _LIT8(KStrLikeFuncName, "LIKE\x0"); |
72 _LIT8(KStrLikeFuncName, "LIKE\x0"); |
72 |
73 |
73 /////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
74 /////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
228 TBool authorizerDisabledState = aAuthorizerDisabled; |
229 TBool authorizerDisabledState = aAuthorizerDisabled; |
229 aAuthorizerDisabled = ETrue; |
230 aAuthorizerDisabled = ETrue; |
230 TInt err = DbExecStmt16(aDbHandle, pragmaSql); |
231 TInt err = DbExecStmt16(aDbHandle, pragmaSql); |
231 aAuthorizerDisabled = authorizerDisabledState; |
232 aAuthorizerDisabled = authorizerDisabledState; |
232 return err; |
233 return err; |
|
234 } |
|
235 |
|
236 //The journal size limit is set to be at lest 16 pages and no less than 64 Kb. |
|
237 static void SetJournalSizeLimitL(sqlite3* aDbHandle, TBool& aAuthorizerDisabled, TInt aPageSize, const TDesC& aDbName = KMainDb16) |
|
238 { |
|
239 __SQLASSERT(aDbHandle != NULL, ESqlPanicBadArgument); |
|
240 if(aPageSize == TSqlSrvConfigParams::KConfigPrmValueNotSet) |
|
241 { |
|
242 __SQLLEAVE_IF_ERROR(DbPageSize(aDbHandle, aDbName, aPageSize)); |
|
243 } |
|
244 const TInt KPageMultiplier = 16; |
|
245 const TInt KDefaultJournalSizeLimit = 64 * 1024; |
|
246 const TInt KMaxJournalSizeLimit = 512 * 1024; |
|
247 const TInt KJournalSizeLimit = Min((aPageSize * KPageMultiplier), KMaxJournalSizeLimit); |
|
248 if(KJournalSizeLimit > KDefaultJournalSizeLimit) |
|
249 { |
|
250 __SQLLEAVE_IF_ERROR(::ExecPragma(aDbHandle, aAuthorizerDisabled, KJournalSizeLimitPragma, KJournalSizeLimit)); |
|
251 } |
233 } |
252 } |
234 |
253 |
235 ////////////////////////////////////////////////////////////////////////////////////////////////////// |
254 ////////////////////////////////////////////////////////////////////////////////////////////////////// |
236 ///////////////////////////// CSqlSrvDatabase class ///////////////////////////////////////////// |
255 ///////////////////////////// CSqlSrvDatabase class ///////////////////////////////////////////// |
237 ////////////////////////////////////////////////////////////////////////////////////////////////////// |
256 ////////////////////////////////////////////////////////////////////////////////////////////////////// |
1249 { |
1268 { |
1250 __SQLLEAVE_IF_ERROR(::ExecPragma(iDbHandle, iAuthorizerDisabled, KPageSizePragma, aConfigParams.iPageSize)); |
1269 __SQLLEAVE_IF_ERROR(::ExecPragma(iDbHandle, iAuthorizerDisabled, KPageSizePragma, aConfigParams.iPageSize)); |
1251 } |
1270 } |
1252 |
1271 |
1253 const TDesC& logicalDbName = aLogicalDbName.Length() > 0 ? aLogicalDbName : KMainDb16; |
1272 const TDesC& logicalDbName = aLogicalDbName.Length() > 0 ? aLogicalDbName : KMainDb16; |
|
1273 |
|
1274 ::SetJournalSizeLimitL(iDbHandle, iAuthorizerDisabled, aConfigParams.iPageSize, logicalDbName); |
1254 |
1275 |
1255 //Setting the cache size. |
1276 //Setting the cache size. |
1256 //Step 1: Check if aConfigParams.iCacheSize value is set. If it is set, then use it. |
1277 //Step 1: Check if aConfigParams.iCacheSize value is set. If it is set, then use it. |
1257 if(aConfigParams.iCacheSize != TSqlSrvConfigParams::KConfigPrmValueNotSet) |
1278 if(aConfigParams.iCacheSize != TSqlSrvConfigParams::KConfigPrmValueNotSet) |
1258 { |
1279 { |