[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