Skip to content

Conversation

@aannleax
Copy link
Member

This PR replaces ChaseRule and RuleAnalysis with NormalizedRules. It also reworks the planning code.

Copy link
Member

@mmarx mmarx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have some minor comments, but looks good overall

/// For each variant of the variable order computation
/// contains one [HashSet] mapping each predicate to its available [ColumnOrder]s.
pub(crate) all_column_orders: Vec<HashMap<Tag, HashSet<ColumnOrder>>>,
pub(crate) _all_column_orders: Vec<HashMap<Tag, HashSet<ColumnOrder>>>,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of renaming this, why not add #[allow(unused)]? Now this won't sort next to all_variable_orders in, e.g., autocomplete.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, is this actually even unused?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is now. Before it was used to compute a variable order for additional rules using the existing column orders as input. Now everything is handled with the initial variable order.

ImportInstruction::new(predicate, handler)
}

#[ignore]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are we ignoring this test?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wanted to ask @monsterkrampe if he could take a look at it later, as I don't understand how my changes would affect the outcome of the variable order computation (and if this would even be a problem)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, should be fixed now

(rules, variables, predicates)
}

#[ignore]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same question, why is this ignored?

Comment on lines +45 to +46
UnionRange::NewExclusive => (step_last_application + 1)..step_current,
UnionRange::OldInclusive => 0..(step_last_application + 1),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please use ..= instead of adding 1 and using exclusive ranges

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Apparently Range and RangeInclusive are different types

@aannleax aannleax requested a review from mmarx October 20, 2025 08:49
@mmarx mmarx mentioned this pull request Oct 20, 2025
@github-project-automation github-project-automation bot moved this from Todo to In Progress in nemo Oct 20, 2025
@aannleax aannleax force-pushed the feature/refactor-planning branch from 94fc828 to d19caac Compare October 20, 2025 14:51
@aannleax aannleax merged commit 2ad1fb1 into main Oct 20, 2025
8 checks passed
@aannleax aannleax deleted the feature/refactor-planning branch October 20, 2025 15:03
@github-project-automation github-project-automation bot moved this from In Progress to Done in nemo Oct 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants