Skip to content

refactor: remove Simple executor implementation#147

Merged
ChunxuTang merged 2 commits intolance-format:mainfrom
beinan:remove-simple-executor
Mar 4, 2026
Merged

refactor: remove Simple executor implementation#147
ChunxuTang merged 2 commits intolance-format:mainfrom
beinan:remove-simple-executor

Conversation

@beinan
Copy link
Collaborator

@beinan beinan commented Mar 4, 2026

Summary

Removes the legacy Simple executor to simplify the codebase and reduce maintenance burden. All queries now use the DataFusion planner, which provides better performance and more features.

Changes

Deleted (7 files, 724 lines)

  • simple_executor/ module (5 files)
  • test_simple_executor_pipeline.rs test file

Modified (5 files)

  • query.rs: Removed Simple variant, execute_simple() method, and related code (~250 lines)
  • lib.rs: Removed module declaration
  • graph.rs (Python): Removed Simple from ExecutionStrategy enum
  • README.md: Updated documentation to remove Simple references
  • graph_execution.rs (benchmarks): Updated to use DataFusion

Breaking Changes

Rust API:

  • ❌ Removed ExecutionStrategy::Simple enum variant
  • ❌ Removed CypherQuery::execute_simple() method
  • ✅ Migration: Use None or Some(ExecutionStrategy::DataFusion)

Python API:

  • ❌ Removed ExecutionStrategy.Simple enum value
  • ✅ Migration: Use None or strategy=ExecutionStrategy.DataFusion

Behavior

  • All queries now use DataFusion planner (same functionality, better optimization)
  • No feature loss - DataFusion supports all Cypher features that Simple did
  • Performance likely improves due to DataFusion's query optimization

Testing

✅ All 295 unit tests pass
✅ Package builds successfully
✅ No remaining references to Simple executor in codebase

Impact

Users passing ExecutionStrategy::Simple will need to update their code to use the default DataFusion strategy. This is acceptable as DataFusion provides strictly more features and better performance.

beinan and others added 2 commits March 4, 2026 00:26
Remove the legacy Simple executor to simplify the codebase and reduce
maintenance burden. All queries now use the DataFusion planner, which
provides better performance and more features.

Changes:
- Delete simple_executor module (724 lines across 5 files)
- Remove ExecutionStrategy::Simple enum variant (breaking change)
- Remove CypherQuery::execute_simple() method
- Update all tests to use DataFusion execution
- Update documentation and examples
- Update Python bindings to remove Simple variant

Breaking Changes:
- Rust: ExecutionStrategy::Simple removed, use None or DataFusion
- Python: ExecutionStrategy.Simple removed, use None or DataFusion

All existing functionality is preserved - DataFusion supports all
features that Simple did with better optimization.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Run cargo fmt to fix formatting issues
- Remove empty impl CypherQuery {} block
- Remove unused ExecutionStrategy import from benchmarks

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@codecov-commenter
Copy link

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@beinan beinan requested a review from ChunxuTang March 4, 2026 00:40
@ChunxuTang ChunxuTang merged commit 34fb4f5 into lance-format:main Mar 4, 2026
8 checks passed
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.

3 participants