Philippe Pepiot <philippe.pepiot@logilab.fr> [Wed, 26 Apr 2017 15:04:40 +0200] rev 12182
[req] raise KeyError instead of AssertionError in req.find()
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 25 Apr 2017 17:31:24 +0200] rev 12181
[req] use format() instead of % substitution
For readability, avoid escaping using %% and use format() instead.
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 25 Apr 2017 17:11:18 +0200] rev 12180
[test] make assertions on exception message
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 25 Apr 2017 17:10:16 +0200] rev 12179
[req] clearer exception message
Display what attribute trigger the NotImplementedError
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 21 Apr 2017 10:29:44 +0200] rev 12178
[cleanup] Drop useless fake function
actually not necessary.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 21 Apr 2017 10:29:07 +0200] rev 12177
[cleanup] Use plain unittest main in unittest_rqlrewrite
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 25 Apr 2017 17:35:29 +0200] rev 12176
[cleanup] Fix flake8 error unittest_rqlrewrite
hard one!
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 20 Apr 2017 18:05:06 +0200] rev 12175
[rqlrewrite] Enhance detection of need for Exists node
We actually want one only if this is not a (`And` / `Or`) binary tree of `Not` or
`Exists` nodes, so write a recursive function to tell so.
Related to #17074119
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 21 Apr 2017 09:57:04 +0200] rev 12174
[rqlrewrite] Fix rewrite on ambiguities introduced by NOT relation or "is IN" type restriction
When some inserted RQL snippet generate more solutions than the original RQL,
the rewriter attempt to duplicate the snippet for each newly introduced
solution. There are though some cases where we do not want this behaviour in
case of ambiguities introduced by:
* NOT(X relation Y) expression, since it won't be
equivalent to NOT(X relation Y1, Y1 is Type1) OR NOT(X relation Y2, Y2 is
Type2) ;
* EXISTS(X relation Y, Y is IN (Type1, Type2) expression, since it's not
actually necessary to split an explicitly introduced ambiguity (and it crash
if we attempt to do so, so...).
In test, we've to modify the `rewrite()` function because in the newly
introduced test we need the same constraint to be applied to two variables in
the original query, and this was not supported before.
Notice the generated RQL in test is still *NOT CORRECT* "(EXISTS(NOT EXISTS() OR
EXISTS(...))", or at least isn't optimal. This will be fixed in a forthcoming
changeset.
Related to #17074119
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 19 Apr 2017 09:05:10 +0200] rev 12173
[dataimport] Add explanation about why external entities can't be inserted
By default after the import processed the importer indicates which external
entities can't be inserted because they are missing dependency data (other
entities, used in inlined or mandatory relations).
It usually helps there to find out which extids / relations are missing, so add
this to the log.