An error occurred fetching the project authors.
- 01 Sep, 2017 2 commits
-
-
Kazuhiko Shiozaki authored
-
Vincent Pelletier authored
Also, simplify code flow by removing unnecessary "if" statements. Also, simplify returned query tree by removing unnecessary intermediate ComplexQueries.
-
- 31 Aug, 2017 1 commit
-
-
Vincent Pelletier authored
One part working on {base_category_id: [document_value_set]}, and the other producing that structure out of a flat list of (base_category_id-prefixed) category relative urls. The former used to be included in the latter, but in some case caller already has the documents handy instead of only urls, in which case we can avoid a layer of document lookups.
-
- 25 Aug, 2017 1 commit
-
-
Kazuhiko Shiozaki authored
-
- 27 Jul, 2017 4 commits
-
-
Vincent Pelletier authored
-
Vincent Pelletier authored
-
Vincent Pelletier authored
Less ambiguous than previous syntax while keeping names short. Allows defining more flags without limiting base_category namespace: the only forbidden base_category id is "related", which was already reserved (ie, not working) in previous syntax.
-
Vincent Pelletier authored
-
- 28 Jun, 2017 2 commits
-
-
Vincent Pelletier authored
-
Vincent Pelletier authored
Catalog does not need "resource_uid" when it requested for "resource_use_uid", so don't spend time computing it.
-
- 18 May, 2017 1 commit
-
-
Vincent Pelletier authored
These are the easy uses, there are more to come.
-
- 14 Apr, 2017 2 commits
-
-
Vincent Pelletier authored
Allows reducing the number of user existence check queries from one per document to one per document batch, reducing database (currently, catalog) latency effect on indexation time. Also, avoid object -> id -> object dance for SQLCatalog instance while at it. Also, modernise syntax a bit, avoiding intermediate locals mostly.
-
Vincent Pelletier authored
These are used nowhere in the code. In many workflows, these "catalog-available" variables are only configured so they appear as fields on worklist definitions. So it is understood as more of an informative setting having a local effect than a normative one having an effect on how indexation happens. So shave off a bit of useless time spent in indexation. Also, it should be mentionned that when profiling this code causes a big red-herring: this code is the first place where workflow history gets loaded (and presumably indexed document itself), which draws attention away from potentially more interesting areas.
-
- 05 Apr, 2017 1 commit
-
-
Vincent Pelletier authored
-
- 03 Apr, 2017 1 commit
-
-
Vincent Pelletier authored
ComplexQuery bypasses SearchKey mechanism and makes assumptions SQLCatalog.{search|count}Results does not do. Instead, reserve a name, and complain if it is passed by caller.
-
- 23 Dec, 2016 1 commit
-
-
Vincent Pelletier authored
-
- 20 Dec, 2016 3 commits
-
-
Vincent Pelletier authored
Allows accessing any catalog column after parent relation, instead of only pre-configured columns. Allows reverse relation lookup (for the non-parent part of the relation, as child relationship is not supported). Also, drop now-redundant related keys.
-
Vincent Pelletier authored
Simplifies extension. Also, factorise constants a bit.
-
Vincent Pelletier authored
Otherwise, longer results would be truncated and shorter results would produce activities with an empty list as argument.
-
- 12 Dec, 2016 1 commit
-
-
Vincent Pelletier authored
It does not depend on a specific plugin. Also, update all importers. Also, reduce import cycles in ERP5Security.
-
- 24 May, 2016 3 commits
-
-
Vincent Pelletier authored
Fix a misnamed local. Use iteritems. Move variables next to the loop they act on. Rewrite comments to better reflect the intention when it is not obvious in the implementation. Move a loop-invariant out of loop ((user, role) not in optimized_role_set). Do not use set.update on an iterable constructed just for the call, call set.add on each item.
-
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 1 commit
-
-
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.
-