From 8668fb89b8ae7833fc99aeb1a8a61ceec271c1f7 Mon Sep 17 00:00:00 2001 From: Maia Date: Fri, 16 Jan 2026 17:14:12 +0100 Subject: [PATCH] apply patches from duckdb v1.5-variegata --- src/statement_generator.cpp | 5 +++-- src/statement_simplifier.cpp | 10 ++++++---- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/statement_generator.cpp b/src/statement_generator.cpp index fc34c7cd..5defc4ef 100644 --- a/src/statement_generator.cpp +++ b/src/statement_generator.cpp @@ -373,8 +373,9 @@ unique_ptr StatementGenerator::GenerateQueryNode() { GenerateCTEs(*setop); setop->setop_type = Choose({SetOperationType::EXCEPT, SetOperationType::INTERSECT, SetOperationType::UNION, SetOperationType::UNION_BY_NAME}); - setop->left = GenerateQueryNode(); - setop->right = GenerateQueryNode(); + for(idx_t i = 0; i < 2; i++) { + setop->children.push_back(GenerateQueryNode()); + } switch (setop->setop_type) { case SetOperationType::EXCEPT: case SetOperationType::INTERSECT: diff --git a/src/statement_simplifier.cpp b/src/statement_simplifier.cpp index 2cd7f068..46029288 100644 --- a/src/statement_simplifier.cpp +++ b/src/statement_simplifier.cpp @@ -196,8 +196,9 @@ void StatementSimplifier::Simplify(SelectNode &node) { } void StatementSimplifier::Simplify(SetOperationNode &node) { - Simplify(node.left); - Simplify(node.right); + for(auto &child : node.children) { + Simplify(child); + } } void StatementSimplifier::Simplify(CommonTableExpressionMap &cte) { @@ -218,8 +219,9 @@ void StatementSimplifier::Simplify(unique_ptr &node) { break; case QueryNodeType::SET_OPERATION_NODE: { auto &setop = node->Cast(); - SimplifyReplace(node, setop.left); - SimplifyReplace(node, setop.right); + for(auto &child : setop.children) { + SimplifyReplace(node, child); + } Simplify(setop); break; }