[Kde-pim] KDE/kdepim/kmail

Jaroslaw Staniek js at iidea.pl
Wed May 7 15:51:39 BST 2008


Detailed log for kmail-nommap and kdepim-nommap branches:


------------------------------------------------------------------------
r804491 | staniek | 2008-05-06 10:14:57 +0200 (Wt, 06 maj 2008) | 2 lines

copy

------------------------------------------------------------------------
r804501 | staniek | 2008-05-06 11:08:24 +0200 (Wt, 06 maj 2008) | 2 lines

merge with trunk changes

------------------------------------------------------------------------
r804507 | staniek | 2008-05-06 11:15:51 +0200 (Wt, 06 maj 2008) | 2 lines

merge with trunk changes

------------------------------------------------------------------------
r804780 | staniek | 2008-05-06 23:57:14 +0200 (Wt, 06 maj 2008) | 2 lines

port truncateIndex()

------------------------------------------------------------------------
r804960 | staniek | 2008-05-07 10:25:44 +0200 (—r, 07 maj 2008) | 2 lines

merge trunk changes after r804545

------------------------------------------------------------------------
r805060 | staniek | 2008-05-07 15:13:25 +0200 (—r, 07 maj 2008) | 2 lines

merge with trunk changes since r804959


==kmail-nommap:==

------------------------------------------------------------------------
r804467 | tilladam | 2008-05-06 09:02:54 +0200 (Wt, 06 maj 2008) | 1 line

Be more defensive and don't crash when trying to update a non-existing db file.
------------------------------------------------------------------------
r804350 | staniek | 2008-05-05 21:08:33 +0200 (Pn, 05 maj 2008) | 2 lines

merge with trunk changes since r804349

------------------------------------------------------------------------
r804269 | staniek | 2008-05-05 16:00:16 +0200 (Pn, 05 maj 2008) | 2 lines

merge with trunk changes since r804129

------------------------------------------------------------------------
r804263 | staniek | 2008-05-05 15:36:25 +0200 (Pn, 05 maj 2008) | 2 lines

writeMessages(): do not overwrite when msg != 0

------------------------------------------------------------------------
r804234 | staniek | 2008-05-05 14:06:05 +0200 (Pn, 05 maj 2008) | 2 lines

fix return values for FolderStorage::writeFolderIdsFile(), 
FolderStorage::touchFolderIdsFile() and FolderStorage::appendToFolderIdsFile()

------------------------------------------------------------------------
r804186 | staniek | 2008-05-05 11:51:46 +0200 (Pn, 05 maj 2008) | 5 lines

KMFolderIndex::updateIndex() - fix result checking of writeMessages()

-fetching emails from (d)imap seems to work smoothly now


------------------------------------------------------------------------
r804143 | staniek | 2008-05-05 09:43:23 +0200 (Pn, 05 maj 2008) | 2 lines

merge with trunk changes since r803462

------------------------------------------------------------------------
r804141 | staniek | 2008-05-05 09:39:57 +0200 (Pn, 05 maj 2008) | 2 lines

common code for KMFolderIndex

------------------------------------------------------------------------
r804138 | staniek | 2008-05-05 09:30:32 +0200 (Pn, 05 maj 2008) | 2 lines

remove extra ,

------------------------------------------------------------------------
r803463 | staniek | 2008-05-03 01:16:40 +0200 (So, 03 maj 2008) | 2 lines

merge with trunk changes post r802762

------------------------------------------------------------------------
r803451 | staniek | 2008-05-03 00:12:35 +0200 (So, 03 maj 2008) | 8 lines

* 'messages' table creation is now: "CREATE TABLE messages( id INTEGER PRIMARY 
KEY AUTOINCREMENT, data BLOB )" - added autoincremented 'id' PK column
* implemented KMFolderIndex::updateIndex() (see the table) and added extended 
version of writeMessages() with WriteMessagesMode modes
* KMFolderIndex::readIndex() now calls "SELECT id, data FROM messages"
* KMFolderIndex::writeMessages(): depending on the mode (WriteMessagesMode) 
the sql statement "INSERT INTO messages(data) VALUES(?)" or "INSERT OR REPLACE 
INTO messages(id, data) VALUES (?, ?)", thus unique IDs are created when new 
yet unsored messages are saved, for later use
* 'sqlite_int64 dbId' member added to KMMsgBase; KMMsgBase and KMMsgInfo ctors 
in SQLite mode now differ from mmap mode
* KMMsgBase::syncIndexString() completely removed in SQLite mode because we 
want to keep all SQLite-specific operations in kmfolderindex_sqlite.cpp; 
KMFolderIndex::updateIndex() does this now.


------------------------------------------------------------------------
r803436 | staniek | 2008-05-02 23:10:55 +0200 (Pt, 02 maj 2008) | 2 lines

more efficient: call mMsgList.at( idx ) once

------------------------------------------------------------------------
r803422 | staniek | 2008-05-02 22:16:56 +0200 (Pt, 02 maj 2008) | 2 lines

use ConstIterators for QMap structures to avoid double lookups

------------------------------------------------------------------------
r803421 | staniek | 2008-05-02 22:15:00 +0200 (Pt, 02 maj 2008) | 2 lines

avoid crashes when msgBase == 0

------------------------------------------------------------------------
r802868 | staniek | 2008-05-01 00:20:39 +0200 (Cz, 01 maj 2008) | 37 lines

Add relatively stable and working implementation of SQLite-based storage for 
KMail indices


*we call the new implementation '''SQLite mode''' for short
*SQLite 3.5.4 is used, as provided by emerge sqlite module; we should not 
allow using much older versions of sqlite, e.g. 3.1 because of file format 
differences
*we are using '''one''' .index.db file per account, not folder (NOTE: 
currently that's per folder...)
*kmailprivate links to sqlite library for SQLite mode, and KMAIL_SQLITE_INDEX 
is defined to enable #ifdef'd code
*kmfolderindex_sqlite.cpp is created and edited as a copy of 
kmfolderindex.cpp; kmfolderindex.cpp #includes kmfolderindex_sqlite.cpp for 
SQLite mode and then skips its own code completely
*kmfolderindex_common.cpp is always included by kmfolderindex.cpp; implements 
KMFolderIndex::openInternal() and KMFolderIndex::createInternal()
*kmfolderindex.h is a common header for both kmfolderindex*.cpp implementations

==KMFolderIndex==
**mIndexId unused - removed as well as serialIndexId()
**indexLocation(): added .db suffix to indicate the index is sqlite-based, 
implementation moved to FolderStorage (before FolderStorage only had it as 
abstract method)
**INDEX_VERSION is written and checked using 'PRAGMA user_version = <integer>' 
command [http://sqlite.org/pragma.html]
**we do not use temporary filenames, e.g. in writeIndex(): SQLite takes care 
about safe storage
**updateIndex(): no changes, we're changing implementation of 
KMMsgBase::syncIndexString() and writeIndex() instead
*added openDatabase( int mode ) for SQLite mode
*readIndex() implemented for SQLite mode - uses SELECT command on messages table
*readIndexHeader() uses "PRAGMA user_version" sqlite command
*writeIndex() implemented for SQLite mode - uses INSERT command on messages 
table, within transaction
*common code from {KMFolderMbox|KMFolderMaildir}::open( const char * ) moved 
to KMFolderIndex::openInternal()
*common code from {KMFolderMbox|KMFolderMaildir}::create() moved to 
KMFolderIndex::createInternal()

==FolderStorage==
*as implementation of KMFolderIndex::indexLocation() is moved to FolderStorage 
(before FolderStorage only had it as abstract method); 
FolderStorage::idsLocation() and FolderStorage::sortedLocation() are added to 
avoid performing the math like ''mFolder->indexLocation() + ".sorted"''
*added QString location(const QString& suffix) - returns full path to .index, 
.ids or .sorted file (depending on the suffix)

==KMMsgBase==
**added char* mData for SQLite mode only (and a getter/setter)
**getStringPart() and getLongPart() share code between modes now: only 
cosmetic changes applied

==KMFolderDir==
*reload(): skip *.index.db files



------------------------------------------------------------------------
r802862 | staniek | 2008-05-01 00:02:58 +0200 (Cz, 01 maj 2008) | 2 lines

merge with trunk changes

------------------------------------------------------------------------
r802861 | staniek | 2008-04-30 23:52:07 +0200 (—r, 30 kwi 2008) | 2 lines

merge trunk changes

------------------------------------------------------------------------
r800459 | staniek | 2008-04-24 12:14:53 +0200 (Cz, 24 kwi 2008) | 2 lines

merge trunk changes since 799390

------------------------------------------------------------------------
r800458 | staniek | 2008-04-24 12:13:14 +0200 (Cz, 24 kwi 2008) | 4 lines

- add ifdefs for KMAIL_SQLITE_INDEX mode
- fix memory leak in KMMsgBase::asIndexString() by adding K_GLOBAL_STATIC for 
uchar* ret


------------------------------------------------------------------------
r800457 | staniek | 2008-04-24 12:10:54 +0200 (Cz, 24 kwi 2008) | 2 lines

sqlite implementation of folder index: kmfolderindex_sqlite.cpp

------------------------------------------------------------------------
r800455 | staniek | 2008-04-24 12:08:46 +0200 (Cz, 24 kwi 2008) | 3 lines

add sqlite dependency for win32 and kmfolderindex_sqlite.cpp


------------------------------------------------------------------------
r799847 | staniek | 2008-04-22 16:16:16 +0200 (Wt, 22 kwi 2008) | 2 lines

check results of KDE_rename

------------------------------------------------------------------------
r799773 | staniek | 2008-04-22 11:52:20 +0200 (Wt, 22 kwi 2008) | 2 lines

fix indentation

------------------------------------------------------------------------
r799594 | staniek | 2008-04-22 00:43:19 +0200 (Wt, 22 kwi 2008) | 3 lines

use special debug area for the index-related operations, thus avoiding #ifdefs


------------------------------------------------------------------------
r799390 | staniek | 2008-04-21 14:47:30 +0200 (Pn, 21 kwi 2008) | 4 lines

add sanity checks to index-related KMail code,
and some debug messages (ifdef'd with KMAIL_INDEX_DEBUG).


-- 
regards / pozdrawiam, Jaroslaw Staniek
  Sponsored by OpenOffice Polska (http://www.openoffice.com.pl/en) to work on
  Kexi & KOffice (http://www.kexi.pl/en, http://www.koffice.org/kexi)
  KDE Libraries for MS Windows (http://windows.kde.org)
_______________________________________________
KDE PIM mailing list kde-pim at kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
KDE PIM home page at http://pim.kde.org/



More information about the kde-pim mailing list