Skip to content

ExecutionState unsafe with seminaive #772

@oflatt

Description

@oflatt

ExecutionState currently allows reads and writes everywhere. This means that queries can write and actions can read, which breaks seminaive. Queries writing means a rule can write even while running a query, which shouldn't happen in egglog. Actions reading means that we need to run them every iteration in case they behave differently, breaking saturation.

@yihozhang and I discussed and came up with a proposed fix.

  • In queries, neither reading or writing from the database is allowed unless seminaiive is disabled.
  • In actions, reading is disallowed but writing is allowed.
  • In global queries, reading is allowed but not writing.
  • In global actions, you can do whatever you want as you can now

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions