An error occurred fetching the project authors.
- 24 May, 2016 2 commits
-
-
Vincent Pelletier authored
Global role computation is very expensive, don't do it when all we are interested in is user existence. Also, list all users having local roles in one call to reduce the effect of per-call overhead. This should improve indexation speed by a large fraction: pprofile statistical run on and activity node busy reindexing objects shows: - 57% of time spend generating (13%) and executing (44%) SQL - 42% of time spent preparing object for indexation: - 29% in _getSecurityParameterList, all in getUserById - 12% in getCatalogVariablesFor (workflow variables to index) So an improvement of close to 30% is expected.
-
Vincent Pelletier authored
Its parameter is a loop invariant, so avoid looking the same user up once per local role.
-
- 12 Jan, 2016 1 commit
-
-
Kazuhiko Shiozaki authored
-
- 24 Sep, 2015 1 commit
-
-
Vincent Pelletier authored
Likewise for positional REQUEST parameter.
-
- 23 Sep, 2015 2 commits
-
-
Jérome Perrin authored
-
Vincent Pelletier authored
local_roles is handled entirely inside ERP5Catalog, so to not tell ZSQLCatalog about it - it can do nothing right with it anyway. Also, get rid of abusive **kw use in this code path. Also, actually pass sql_catalog_id to getAllowedRolesAndUsers.
-
- 14 Aug, 2015 2 commits
-
-
Vincent Pelletier authored
Also, do not use getBaseCategoryDict to avoid mutating cached value and use a set rather than a None-value dict. Also, access portal_categories from portal explicitly rather than relying on acquisition.
-
Vincent Pelletier authored
"to split" is an irregular verb. Also, drop badly-worded comment.
-
- 10 Jul, 2015 1 commit
-
-
Vincent Pelletier authored
Sadly, we still implement our own escaping, as places escaping strings do not know which connector will be used (proper escaping is connector-dependent, because database-dependent). Move this method in ZSQLCatalog to factorise code.
-
- 10 Jun, 2015 1 commit
-
-
Sebastien Robin authored
-
- 13 May, 2015 2 commits
-
-
Julien Muchembled authored
The problem with callMethodOnObjectList is that when an object can't be processed, all other objects of the same group fail without any chance to be retried separately. Grouping is configurable with usual CMFActivity parameters in new 'group_kw' parameter, to avoid any conflict with catalog parameters (**kw). 'packet_size' and 'activity_count' are still accepted for backward compatibility.
-
Julien Muchembled authored
The recent API change was not enough. A grouping method may need more information: in particular, the dummy grouping method must be fixed to change user.
-
- 06 May, 2015 1 commit
-
-
Julien Muchembled authored
When grouped messages fail, ActivityTool must distinguish 3 groups, in order to reexecute them separately, as follows: - first, those that succeeded - then, those that were skipped - at last, failed ones Grouping methods are updated to handle partial failures, and stop doing anything when something goes wrong. Without this, we would have the following pathological cases. 1. Let's suppose first that skipped messages are marked as succeeded. The problem is that each skipped message that will fail causes the reexecution of those that didn't fail. Exemple: A:ok B:ok C:err D:err E:err F:err 1: A:ok, B:ok, C:err, D:skipped, E:skipped, F:skipped 2: A:ok, B:ok, D:err, E:skipped, F:skipped 3: A:ok, B:ok, E:err, F:skipped 4: A:ok, B:ok, F:err 5: A:ok, B:ok -> commit And worst, the first failed (C) may be processable again before 5, entering a failing loop if it is executed again in the same group as A & B. 2. Another implementation is to mark all skipped as failed. Example: 1: A:ok, B:ok, C:err, D:skipped, E:skipped, F:skipped 2: A:ok, B:ok -> commit 3: C:err, D:skipped, E:skipped, F:skipped >3: same as 3 => D, E or F are never tried.
-
- 31 Mar, 2015 1 commit
-
-
Julien Muchembled authored
Race conditions are likely to happen with CMFActivity between message tables are automatically upgraded during bootstrap. Most code is moved from DA patch to ZMySQLDA.
-
- 25 Mar, 2015 1 commit
-
-
Julien Muchembled authored
-
- 29 Jan, 2015 1 commit
-
-
Kazuhiko Shiozaki authored
-
- 08 Nov, 2014 1 commit
-
-
Kazuhiko Shiozaki authored
* to quickly setup catalog_full_text table, you can use the following SQL. REPLACE INTO catalog_full_text SELECT uid, title, description FROM catalog; * non fulltext queries like '=abc', '>abc', '%abc%' are supported. * now erp5_full_text_mroonga_catalog is used for unit tests thus I recommend using it instead of erp5_full_text_myisam_catalog. * to migrate existing MyISAM full_text table into Mroonga, you can use the following SQL. ALTER TABLE full_text DROP KEY SearchableText, ENGINE = mroonga, ADD FULLTEXT KEY SearchableText (`SearchableText`) COMMENT 'parser "TokenBigramSplitSymbolAlpha"'; * fulltext search score is no longer provided as (column_name) but now provided as (column_name)__score__. * (category)_title, like source_title, related keys are automatically generated. (category)_description keys as well.
-
- 16 Oct, 2014 1 commit
-
-
Julien Muchembled authored
-
- 08 Sep, 2014 2 commits
-
-
Vincent Pelletier authored
_searchAndActivate typically calls callMethodOnObjectList with paths as parameter. The result is that each listed document is loaded, which may not be required or desired. select_method_id avoids this loading by calling method_id once per packet_size with a list of values extracted from catalog result as (first) argument.
-
Vincent Pelletier authored
-
- 04 Sep, 2014 1 commit
-
-
Gabriel Monnerat authored
-
- 30 Apr, 2014 3 commits
-
-
Vincent Pelletier authored
-
Vincent Pelletier authored
Also, factorise related key string generation.
-
Vincent Pelletier authored
Also, use xrange as it's faster than range even for short sequences.
-
- 19 Mar, 2014 1 commit
-
-
Julien Muchembled authored
Because the method internally overrode 'uid' after the first group of objects, passing a list of uids could make it go berserk and activate all objects in catalog with an uid greater than those of the first group. Although searchAndActivate was not initially written to be called with such list, this commit fixes this instead of forbidding conditions on 'uid', since it remains useful to easily split & group activities.
-
- 10 Mar, 2014 3 commits
-
-
Jérome Perrin authored
When a portal type acquire role, it should place the role definitions in the same local role group ids
-
Jérome Perrin authored
This reverts commit 1e90e4f8. missing commit message
-
Jérome Perrin authored
-
- 21 Jan, 2014 1 commit
-
-
Julien Muchembled authored
-
- 19 Aug, 2013 1 commit
-
-
Julien Muchembled authored
-
- 23 May, 2013 1 commit
-
-
Jérome Perrin authored
-
- 27 Mar, 2013 1 commit
-
-
Vincent Pelletier authored
try..except is significantly slower than getattr with default value when an exception is raised. defaultdict is faster than calling setdefault. The two other try..except blocks need more careful analysis of typical hit-rates to tell if they are optimal.
-
- 12 Jul, 2012 5 commits
-
-
Ivan Tyagov authored
-
Ivan Tyagov authored
Adjust tests as local roles structure changed.
-
Ivan Tyagov authored
Avoid to catalog some special roles like Owner (defined in getSQLCatalog().getSQLCatalogRoleKeysList()). As __ac_local_roles_group_id_dict__ changed its structure to 'local_group_id': ['Role'] (just the opposite) adjust test as well.
-
Ivan Tyagov authored
-
Ivan Tyagov authored
not pollute with more than required rows table roles_and_users. As result this will increase a bit object database.
-
- 27 Jun, 2012 1 commit
-
-
Ivan Tyagov authored
Try to support migration of old instances (containing old erp5_property_sheets) with recent products. This is especially visible with BusinessTemplate property sheet when new filesystem versions require an up to date erp5_property_sheets bt5 which itself can not be installed.
-
- 22 Jun, 2012 1 commit
-
-
Ivan Tyagov authored
-
- 21 Jun, 2012 1 commit
-
-
Jérome Perrin authored
-