We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Example:
R(x) :- A(_), B(x).
Transfer tuples from relation B to relation R if relation is not empty. Semantically, this can be interpreted as
R(x) :- size(A)>0, B(x).
Souffle currently does not provide this optimization.
The text was updated successfully, but these errors were encountered:
Did this get worked on? Currently the compiled version turns R(x) :- A(_), B(x). into
if (!rel_1_A->empty()) { for (const auto& env1 : *rel_2_B) {
Which seems to be what you describe. I think the relevant parts of the code are
souffle/src/RamTranslator.cpp
Lines 668 to 673 in 1392c67
souffle/src/RamExecutor.cpp
Lines 483 to 488 in 1392c67
Sorry, something went wrong.
This has been fixed.
No branches or pull requests
Example:
Transfer tuples from relation B to relation R if relation is not empty. Semantically, this can be interpreted as
Souffle currently does not provide this optimization.
The text was updated successfully, but these errors were encountered: