Skip to content

datalog: enforce maxTime constraints within expression evaluation - #346

Open
divarvel wants to merge 2 commits into
mainfrom
push-xrkvrznntknx
Open

divarvel wants to merge 2 commits into
mainfrom
push-xrkvrznntknx

Conversation

@divarvel

@divarvel divarvel commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

Previously, maxTime was checked at every datalog fixpoint iteration. It is now enforced every time an expression is evaluated, including recursive evaluation.

It means the Expression evaluation error now gains a new Timeout variant (which is folded into RunLimits::Timeout) before being visible to callers.

Note: this is technically a breaking change:

  • the API of datalog::World is modified
  • the Expression error type gains a new variant

That being said, those types should not be directly used by callers

@divarvel
divarvel force-pushed the push-xrkvrznntknx branch 2 times, most recently from ca4a06b to 33a4bb3 Compare September 27, 2026 11:07
Previously, maxTime was checked at every datalog fixpoint iteration. It
is now enforced every time an expression is evaluated, including recursive
evaluation.

It means the `Expression` evaluation error now gains a new `Timeout` variant
(which is folded into `RunLimits::Timeout`) before being visible to callers.
@aojea

aojea commented Sep 27, 2026

Copy link
Copy Markdown
Contributor

the Rust / Coverage job seems to be failing in all PRs

@aojea

aojea commented Sep 27, 2026

Copy link
Copy Markdown
Contributor

submitted #347

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants