-
Hi @EvgSkv ! I'd like to understand what is the function of some of the annotations. Namely, Much appreciated! |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 3 replies
-
Hi @rvalek !
Some background: a predicate is called injectible if it's defined with a single non-aggregating conjunctive rule. I.e. single rule that doesn't do aggregation and uses only
Example:
When Q is compiled we get
Note that there is no sub-query corresponding to However if we add
You can see the
Logica puts sub-queries into
Note that R is now defined inside the
Hope this helps. Let me know if you have further questions. |
Beta Was this translation helpful? Give feedback.
Hi @rvalek !
Sure!
@NoInject
,@With
and@NoWith
are connected with each other.Some background: a predicate is called injectible if it's defined with a single non-aggregating conjunctive rule. I.e. single rule that doesn't do aggregation and uses only
,
logical connective, no|
. Injectible predicates can be injected (same as inlined) while compilation, i.e. substituted into the body that calls them. If predicate is implementing a computation rather than a table, likeF(x) = 2 * x
, then injection is the only way to use it.However a predicate may be injectible and concrete (i.e. computable as a table) at the same t…