-
|
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,@Withand@NoWithare 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…