From 6a94f2b261bdca4c8f2f8454697e2f6e7bcea9c5 Mon Sep 17 00:00:00 2001 From: Zac Farrell Date: Fri, 30 Jan 2026 08:23:21 -0800 Subject: [PATCH] fix: update SetOperationNode API for DuckDB main branch Use children vector instead of left/right members to support the DuckDB v1.5+ API change. --- .github/workflows/MainDistributionPipeline.yml | 17 ++++------------- src/parse_tables.cpp | 9 ++++----- 2 files changed, 8 insertions(+), 18 deletions(-) diff --git a/.github/workflows/MainDistributionPipeline.yml b/.github/workflows/MainDistributionPipeline.yml index 9720e43..9fd36ce 100644 --- a/.github/workflows/MainDistributionPipeline.yml +++ b/.github/workflows/MainDistributionPipeline.yml @@ -12,19 +12,10 @@ concurrency: cancel-in-progress: true jobs: - # TODO: Re-enable once compatible with DuckDB main (SetOperationNode API change) - # duckdb-next-build: - # name: Build extension binaries - # uses: duckdb/extension-ci-tools/.github/workflows/_extension_distribution.yml@main - # with: - # duckdb_version: main - # ci_tools_version: main - # extension_name: parser_tools - - duckdb-stable-build: + duckdb-next-build: name: Build extension binaries - uses: duckdb/extension-ci-tools/.github/workflows/_extension_distribution.yml@v1.4.4 + uses: duckdb/extension-ci-tools/.github/workflows/_extension_distribution.yml@main with: - duckdb_version: v1.4.4 - ci_tools_version: v1.4.4 + duckdb_version: main + ci_tools_version: main extension_name: parser_tools diff --git a/src/parse_tables.cpp b/src/parse_tables.cpp index 2e29aaf..ce9a458 100644 --- a/src/parse_tables.cpp +++ b/src/parse_tables.cpp @@ -228,11 +228,10 @@ static void ExtractTablesFromQueryNode( else if (node.type == QueryNodeType::SET_OPERATION_NODE) { auto &set_node = (SetOperationNode &)node; - if (set_node.left) { - ExtractTablesFromQueryNode(*set_node.left, results, context, cte_map); - } - if (set_node.right) { - ExtractTablesFromQueryNode(*set_node.right, results, context, cte_map); + for (auto &child : set_node.children) { + if (child) { + ExtractTablesFromQueryNode(*child, results, context, cte_map); + } } }