Skip to content

Predicate Compiler for Evaluators #99

Open
@omervk

Description

@omervk

Predicates are currently created as ASTs, but are not compiled or optimized. Instead, evaluating them means traversing the tree in its entirety, something that, in a tight loop (like going over partitioning functions for all files in a table), is suboptimal.

Compiling the expressions into a minimal syntax tree that embeds the right-hand side values would let us optimize it ahead of time in several ways, including:

  1. Compressing equals-or-equals trees to in.
  2. Dropping always-true and always-false expressions entirely.

This issue therefore includes three things:

  1. Representing expressions as a value-embedded AST.
  2. Creating an optimizer framework.
  3. Slowly building more and more optimizations.

This could probably be done using existing tools, without reinventing the wheel :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions