Commit graph

46 commits

Author SHA1 Message Date
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
Thomas Bruederli
fab0c00194 Merge branch 'master' of ssh://git.kolabsys.com/git/roundcube 2012-05-25 18:09:12 +02:00
Thomas Bruederli
06d970836c Improve cache synchronization: fetch + insert in one row, increase time limit, unlock on script shutdown (#798) 2012-05-25 18:08:42 +02:00
Aleksander Machniak
3a0e3a6e80 Don't unset lock create date, this won't work with PostgreSQL 2012-05-25 10:43:13 +02:00
Thomas Bruederli
9da61e6d4b Reduce code redundancy: implement load() and write() method in parent class kolab_format; do more error checking 2012-05-22 10:14:56 +02:00
Thomas Bruederli
e379aaafc1 Code cleanup: define private members and default DB values; set kolab_format reference to new objects 2012-05-16 14:16:29 +02:00
Thomas Bruederli
c3cfc084a7 Improve fetching contacts with new kolab_storage/cache backend 2012-05-16 10:49:53 +02:00
Thomas Bruederli
3a1f2c207c Revert commit d08cb111 "Fixed working with disabled kolab_cache"
This reverts commit d08cb11137.
2012-05-16 10:12:22 +02:00
Thomas Bruederli
4b5c2ce985 Add some fulltext searching capabilities to kolab_storage_cache and use them for search (autocompletion) in Kolab address books 2012-05-16 10:10:51 +02:00
Thomas Bruederli
dadf00f1a6 Merge branch 'dev/kolab3' of ssh://git.kolabsys.com/git/roundcube into dev/kolab3 2012-05-15 19:08:16 +02:00
Thomas Bruederli
e602722064 Save object words for fulltext searching in caching table 2012-05-15 19:08:01 +02:00
Aleksander Machniak
d08cb11137 Fixed working with disabled kolab_cache 2012-05-15 13:57:27 +02:00
Thomas Bruederli
0131c8aa51 Improve object fetching when cache is disabled 2012-05-09 19:12:26 +02:00
Thomas Bruederli
86c1d510f1 Add select() method to query objects from cache; Use locks to avoid multiple threads synching the same folder simultaneously 2012-05-09 19:01:51 +02:00
Thomas B
c9963d279c Correctly handle object moving in kolab cache 2012-05-03 10:28:42 +02:00
Thomas B
3fc78aa409 Set mime-part ID when adding attachments 2012-05-02 18:04:42 +02:00
Thomas B
18d8fec133 First implementation of a caching layer for kolab_storage;
- Caching is disabled by default (until fully functional and tested)
- Attention: database initialization required for cache)

Silently ignore old Kolab2 objects if no Horde classes found to parse them.
2012-05-02 17:41:02 +02:00