-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
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
Join order optimizer asan bug Follow up #11794
Join order optimizer asan bug Follow up #11794
Conversation
…r to remove lots of unused code
…t rather the address of the DPJoinNode in the dp table
…ctor iterator position
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great after the refactor! I just have two remarks, and then this is ready to go:
//! Tries to emit a potential join candidate pair. Returns false if too many pairs have already been emitted, | ||
//! cancelling the dynamic programming step. | ||
bool TryEmitPair(JoinRelationSet &left, JoinRelationSet &right, const vector<reference<NeighborInfo>> &info); | ||
|
||
unique_ptr<JoinNode> CreateJoinNodeFromDPJoinNode(DPJoinNode dp_node); | ||
// unique_ptr<JoinNode> CreateJoinNodeFromDPJoinNode(DPJoinNode dp_node); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this comment be removed?
return res; | ||
} | ||
const reference_map_t<JoinRelationSet, unique_ptr<DPJoinNode>> &PlanEnumerator::GetPlans() const { | ||
// optional_ptr<reference_map_t<JoinRelationSet, unique_ptr<DPJoinNode>>> res = &plans; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this comment be removed?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM now, thanks!
Thanks! |
Merge pull request duckdb/duckdb#11794 from Tmonster/join_order_optimizer_asan_bug_and_refactor Merge pull request duckdb/duckdb#11863 from Tishj/synchronize_test_requirements
Follow up to #11719
This PR removes the JoinNode class completely. In addition, it removes a lot of other dead code that should have been removed a while ago. This solution passes a const reference to the dynamic programming table of plans to the query_graph_manager so that plan reconstruction can directly reference the dynamic programming table. The reconstruction code can then lookup the left and right JoinRelationSets by looking into the DP table.