Skip to content

refactor: Integrate the materialized CTE into the plan and pipeline #18226

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

Draft
wants to merge 42 commits into
base: main
Choose a base branch
from

Conversation

SkyFan2002
Copy link
Member

@SkyFan2002 SkyFan2002 commented Jun 23, 2025

I hereby agree to the terms of the CLA available at: https://docs.databend.com/dev/policies/cla/

Summary

This PR improves the execution of materialized CTEs. Previously, a temporary table was created in the bind phase. This had several drawbacks:

  1. the CTE and main query couldn't be jointly optimized by the optimizer
  2. the information from "explain" and "profile" is inaccurate
  3. automatic memory spilling of materialized CTE at the query level wasn't possible.

The proposed changes allow for better integration of materialized CTEs into the planning and optimization stages.

Tests

  • Unit Test
  • Logic Test
  • Benchmark Test
  • No Test - Explain why

Type of change

  • Bug Fix (non-breaking change which fixes an issue)
  • New Feature (non-breaking change which adds functionality)
  • Breaking Change (fix or feature that could cause existing functionality not to work as expected)
  • Documentation Update
  • Refactoring
  • Performance Improvement
  • Other (please describe):

This change is Reviewable

@github-actions github-actions bot added the pr-refactor this PR changes the code base without new features or bugfix label Jun 23, 2025
@databendlabs databendlabs deleted a comment from github-actions bot Jun 30, 2025
@databendlabs databendlabs deleted a comment from github-actions bot Jun 30, 2025
@databendlabs databendlabs deleted a comment from github-actions bot Jun 30, 2025
@databendlabs databendlabs deleted a comment from github-actions bot Jun 30, 2025
@databendlabs databendlabs deleted a comment from github-actions bot Jun 30, 2025
@databendlabs databendlabs deleted a comment from github-actions bot Jun 30, 2025
@databendlabs databendlabs deleted a comment from github-actions bot Jun 30, 2025
@databendlabs databendlabs deleted a comment from github-actions bot Jun 30, 2025
@databendlabs databendlabs deleted a comment from github-actions bot Jul 10, 2025
@databendlabs databendlabs deleted a comment from github-actions bot Jul 10, 2025
@databendlabs databendlabs deleted a comment from github-actions bot Jul 10, 2025
Copy link
Contributor

🤖 Smart Auto-retry Analysis

Workflow: 16247208300

📊 Summary

  • Total Jobs: 80
  • Failed Jobs: 16
  • Retryable: 0
  • Code Issues: 16

NO RETRY NEEDED

All failures appear to be code/test issues requiring manual fixes.

🔍 Job Details

  • linux / sqllogic / standalone_minio_with_bendsave: Not retryable (Code/Test)
  • linux / sqllogic / cluster (query, 4c16g, http): Not retryable (Code/Test)
  • linux / sqllogic / cluster (duckdb, 4c16g, hybrid): Not retryable (Code/Test)
  • linux / sqllogic / cluster (duckdb, 4c16g, http): Not retryable (Code/Test)
  • linux / sqllogic / cluster (query, 4c16g, hybrid): Not retryable (Code/Test)
  • linux / sqllogic / cluster (tpcds, 2c8g, hybrid): Not retryable (Code/Test)
  • linux / sqllogic / cluster (tpch, 2c8g, hybrid): Not retryable (Code/Test)
  • linux / sqllogic / cluster (tpch, 2c8g, http): Not retryable (Code/Test)
  • linux / sqllogic / cluster (tpcds, 2c8g, http): Not retryable (Code/Test)
  • linux / sqllogic / standalone (tpch, 2c8g, http): Not retryable (Code/Test)
  • linux / sqllogic / standalone (standalone, 2c8g, http): Not retryable (Code/Test)
  • linux / sqllogic / standalone (tpch, 2c8g, hybrid): Not retryable (Code/Test)
  • linux / sqllogic / stage (s3, hybrid, full_path, small): Not retryable (Code/Test)
  • linux / sqllogic / standalone (standalone, 2c8g, hybrid): Not retryable (Code/Test)
  • linux / sqllogic / stage (fs, hybrid, sub_path, large): Not retryable (Code/Test)
  • linux / sqllogic / stage (fs, hybrid, full_path, small): Not retryable (Code/Test)

🤖 About

Automated analysis using job annotations to distinguish infrastructure issues (auto-retried) from code/test issues (manual fixes needed).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pr-refactor this PR changes the code base without new features or bugfix
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant