Commit graph

66 commits

Author SHA1 Message Date
Thomas Bruederli
1f8e7cc478 Fix SQL syntax error when purging cache for a folder 2013-11-04 11:50:06 +01:00
Jeroen van Meeuwen (Kolab Systems)
4065542e07 Merge branch 'dev/kolab-cache-refactoring'
Conflicts:
	plugins/libkolab/lib/kolab_storage_cache.php
2013-10-17 16:48:08 +02:00
Thomas Bruederli
595f1b6a8c Only keep the last created object in memory (#2353) 2013-10-17 13:11:46 +02:00
Aleksander Machniak
053a640b87 Fix PHP warning when _sql_where() is callend with NULL as an argument 2013-10-14 15:04:00 +02:00
Aleksander Machniak
d67a7f0d76 Fix reference to kolab_cache table in count() method 2013-10-08 13:37:49 +02:00
Thomas Bruederli
cb8249d414 Rename kolab_folders.ID to kolab_folders.folder_id to be in sync with other Roundcube database conventions 2013-10-07 20:06:04 +02:00
Thomas Bruederli
6b89e36c4e Merge remote-tracking branch 'origin/libkolab-cache-bypass' into dev/kolab-cache-refactoring 2013-10-07 17:34:17 +02:00
Aleksander Machniak
71619510c4 Improve bypass() method so it works "recursively" 2013-10-07 15:57:55 +02:00
Aleksander Machniak
9d174daf9f Add option kolab_messages_cache_bypass 2013-10-07 15:05:34 +02:00
Thomas Bruederli
cc21e9161c Fix typo introduced in commit 8680256c54 2013-10-07 14:59:20 +02:00
Thomas Bruederli
4f69556b71 Only set sync lock if folder hash changed 2013-10-07 14:31:48 +02:00
Aleksander Machniak
8680256c54 Fix enabled imap threading mode when synchronizing kolab folder (Bug #2323) 2013-10-07 13:41:10 +02:00
Thomas Bruederli
20a731c540 Minor code improvements 2013-10-07 12:12:23 +02:00
Thomas Bruederli
b72709a5cf Lazy read kolab_folder record from DB; fix error when mass-inserting cache records 2013-10-07 11:59:00 +02:00
Aleksander Machniak
16d9509a5d Improved performance of kolab cache by bypassing Roundcube messages cache (Request #1740) 2013-10-07 09:56:06 +02:00
Thomas Bruederli
b7d4731d97 Let the derrived kolab_storage_cache classes provide the contents of their custom cache record fields 2013-10-04 19:32:21 +02:00
Thomas Bruederli
87335f387f Split kolab_cache table into folder-type specific tables and specialized kolab_storage_cache_* classes; the object type is now implicit 2013-10-04 17:14:34 +02:00
Thomas Bruederli
1a957820c4 Update resource URI of cache entries when renaming a folder (#2269) 2013-09-26 10:47:21 +02:00
Aleksander Machniak
c7dfb7c042 Fix INSERT undefined values for NOT NULL columns (Bug #2038) 2013-07-31 14:32:54 +02:00
Aleksander Machniak
bc4d15ab55 De-duplicate binary content when saving in database (#1749) 2013-06-17 15:44:17 +02:00
Aleksander Machniak
b602913ce3 Improve performance by reading max_allowed_packet variable (SHOW VARIABLES query) only if needed 2013-06-11 14:52:10 +02:00
Thomas Bruederli
44c19b496c Replace recursive calls with while loop when waiting for sync-lock (#1637) 2013-05-27 17:27:53 +02:00
Aleksander Machniak
1857a64d4f Fix undefined variable related errors caught in static code analysis 2013-05-07 12:56:18 +02:00
Aleksander Machniak
5f306222f2 Suppoprt more complicated cache queries, e.g. AND (tags LIKE ' tag1 ' OR tags LIKE ' tag2 ') 2013-04-22 15:52:37 +02:00
Aleksander Machniak
e03156fc1f Implemented new method of storing filename and mimetype of file objects 2013-04-19 14:20:55 +02:00
Thomas Bruederli
5b4c9500d1 Make some metadata from the Kolab storage backend available to the library user 2013-02-21 11:18:59 +01:00
Aleksander Machniak
f210104dda Cache in-memory objects returned by select() 2012-11-15 12:40:27 +01:00
Thomas Bruederli
79d71d0731 Always use Kolab format v3 for caching 2012-11-09 13:57:54 +01:00
Thomas Bruederli
f91e6ed831 Use generic escape() function to quote UIDs 2012-11-08 14:41:37 +01:00
Thomas Bruederli
6d75fdd5f3 Quote object UID for IMAP SEARCH command; read generated UID from XMLObject if we're working with libkolab bindings 2012-11-08 14:03:06 +01:00
Thomas Bruederli
d98e8787c6 Fix kolab_format_* classes to read v2 format; perpare kolab_storage to write out v2 format 2012-11-06 19:03:12 +01:00
Thomas Brüderli
b4ced09d2e Make use of libkolab/libcalendaring PHP bindings for computing recurring events 2012-10-23 15:05:38 +02:00
Aleksander Machniak
8fa4ddb8f0 Fix clearing the cache on object delete (#912) 2012-08-02 13:01:10 +02:00
Thomas Bruederli
b23453e3ec Also use DateTime values for recurrence rules; explicitly set last-modified times when savng an object 2012-07-06 16:38:40 +02:00
Thomas Bruederli
16770f3612 Compute the real end date-time of a recurring event for caching 2012-07-04 15:57:19 +02:00
Thomas Bruederli
8961bf3147 Merge branch 'master' of ssh://git.kolabsys.com/git/roundcube 2012-06-27 10:52:40 +02:00
Thomas Bruederli
290d0f113f Use explicit insert() method to skip delete query when caching a newly created object (updated objects get new msguids and are de-facto new) 2012-06-26 16:54:04 +02:00
Aleksander Machniak
fbcf125418 Reset 'synclock' flag in _sync_unlock(), so the query isn't executed in shutdown function when not needed 2012-06-26 15:27:26 +02:00
Thomas Bruederli
464b4961cc Save last-modified date (aka 'changed') in cache and allow to use it in queries (#847) 2012-06-22 15:37:09 +02:00
Thomas Bruederli
078b953953 Add getter for a list of object UIDs (#848) 2012-06-20 18:47:01 +02:00
Thomas Bruederli
6d1f67ad92 Allow complex queries for kolab_storage_folder::count(); fix row counting from SQL 2012-06-20 15:32:23 +02:00
Thomas Bruederli
d19ee85667 Save created timestamp with every cache entry 2012-06-08 17:49:25 +02:00
Thomas Bruederli
529d16eac3 Cache start/due dates for task objects 2012-06-08 14:10:46 +02:00
Thomas Bruederli
2ad9e2e1ba - Small refactoring: build words index in common kolab_format_xcal class
- Define tags to be cached with task objects
- Allow to query cache with NOT LIKE (!~) queries
2012-06-08 13:15:10 +02:00
Aleksander Machniak
3f3cf6bc65 Use Roundcube Framework where applicable, so we can use this code out of Roundcube 2012-06-05 09:15:23 +02:00
Thomas Bruederli
f53a1662e3 Strip white-space from xml when caching 2012-05-30 14:24:23 +02:00
Thomas Bruederli
6bbb34b3ae Use regex-like syntax for LIKE queries to kolab_storage_cache; also use it for calendar search 2012-05-30 09:13:24 +02:00
Thomas Bruederli
e9be3f05ff Read 'max_allowed_packet' from mysql config (requires latest HEAD of Roundcube core) 2012-05-26 15:37:35 +02:00
Thomas Bruederli
b5b26e6800 Always add type parameter to cache queries (#799); remove last parameter from set() 2012-05-26 15:20:41 +02:00
Thomas Bruederli
27a4061c99 Optimize cache synchronization by using extended SQL inserts (#798) 2012-05-26 15:15:17 +02:00