Skip to content

Comments

Sequential#5

Merged
PierreZ merged 3 commits intodatafusion-contrib:mainfrom
PierreZ:sequential
Feb 18, 2026
Merged

Sequential#5
PierreZ merged 3 commits intodatafusion-contrib:mainfrom
PierreZ:sequential

Conversation

@PierreZ
Copy link
Collaborator

@PierreZ PierreZ commented Feb 18, 2026

PierreZ and others added 3 commits February 18, 2026 09:35
Add UnionMode enum to control how OR conditions combine index scans:
- Parallel (default): Uses standard UnionExec with Tokio task spawning
- Sequential: Uses new SequentialUnionExec without task spawning

This enables use in non-Tokio async runtimes (custom executors,
single-threaded runtimes) where JoinSet::spawn() would panic.

Key implementation details:
- SequentialUnionExec reports 1 partition and chains all input streams
- Uses required_input_distribution(SinglePartition) to prevent optimizer
  from inserting RepartitionExec which would cause deadlocks
- IndexedTableProvider gains union_mode() method for customization

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Override union_mode() in EmployeeTableProvider so the trait hook is
actually exercised by tests. Add defensive expect to BatchMapper::schema().
Remove dead MockExec struct that triggered -Dwarnings in CI.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@PierreZ PierreZ merged commit c630f62 into datafusion-contrib:main Feb 18, 2026
4 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.

Add SequentialUnionExec for tokio-agnostic OR condition execution

1 participant