Skip to content

WIP: sql: extract planNode interface and implementations to dedicated package#160945

Draft
yuzefovich wants to merge 1 commit intocockroachdb:masterfrom
yuzefovich:plan-node
Draft

WIP: sql: extract planNode interface and implementations to dedicated package#160945
yuzefovich wants to merge 1 commit intocockroachdb:masterfrom
yuzefovich:plan-node

Conversation

@yuzefovich
Copy link
Copy Markdown
Member

@yuzefovich yuzefovich commented Jan 12, 2026

Previously, the planNode interface and all 156+ implementations lived
in pkg/sql, creating tight coupling and making the codebase harder to
navigate and maintain. This refactoring extracts the planNode execution
layer into a dedicated package structure.

Changes:

  • Created pkg/sql/planbase package for shared execution context types
    (ExtendedEvalContext, RunParams, PlannerAccessor interface)
  • Created pkg/sql/plannode package containing the planNode interface
    and all implementations
  • Broke circular dependencies using the PlannerAccessor interface pattern
  • Exported ExtendedEvalContext type for cross-package usage
  • Capitalized all planNode interface methods (StartExec, Next, Values, Close)
  • Fixed 200+ type assertion errors across 30+ packages

This change improves code organization and sets the foundation for
future SQL execution layer improvements.

Informs: #79357
Epic: None

Release note: None

Co-Authored-By: Claude Sonnet 4.5 noreply@anthropic.com

@blathers-crl
Copy link
Copy Markdown

blathers-crl Bot commented Jan 12, 2026

Your pull request contains more than 1000 changes. It is strongly encouraged to split big PRs into smaller chunks.

🦉 Hoot! I am a Blathers, a bot for CockroachDB. My owner is dev-inf.

@cockroach-teamcity
Copy link
Copy Markdown
Member

This change is Reviewable

Previously, the planNode interface and all 156+ implementations lived
in pkg/sql, creating tight coupling and making the codebase harder to
navigate and maintain. This refactoring extracts the planNode execution
layer into a dedicated package structure.

Changes:
- Created pkg/sql/planbase package for shared execution context types
  (ExtendedEvalContext, RunParams, PlannerAccessor interface)
- Created pkg/sql/plannode package containing the planNode interface
  and all implementations
- Broke circular dependencies using the PlannerAccessor interface pattern
- Exported ExtendedEvalContext type for cross-package usage
- Capitalized all planNode interface methods (StartExec, Next, Values, Close)
- Fixed 200+ type assertion errors across 30+ packages

This change improves code organization and sets the foundation for
future SQL execution layer improvements.

Informs: cockroachdb#79357
Epic: None

Release note: None

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@yuzefovich yuzefovich changed the title WIP: Extract planNode to pkg/sql/plannode package WIP: sql: extract planNode interface and implementations to dedicated package Jan 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants