Skip to content

Conversation

@lukekim
Copy link

@lukekim lukekim commented Jan 29, 2026

This pull request updates how CASE WHEN expressions are evaluated in both benchmarks and tests, switching from the older .evaluate() method to the newer apply + execute pattern using a session context. This ensures consistency with the main execution path and prepares the codebase for future enhancements. Additionally, a new integration test is added to verify equivalence between Vortex and DataFusion CASE WHEN evaluation.

Migration to apply+execute evaluation pattern:

  • All benchmarks in case_when_bench.rs now use the apply + execute pattern with a shared VortexSession context, replacing direct calls to .evaluate() for more accurate benchmarking of real execution paths. [1] [2] [3] [4] [5]
  • All tests in case_when.rs are refactored to use a helper function that evaluates expressions via apply + execute with a static session, replacing .evaluate() calls throughout. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]

Testing and correctness improvements:

  • Added a new integration test to exprs.rs that checks the equivalence of CASE WHEN evaluation between DataFusion and Vortex, ensuring that the conversion and execution yield identical results.

These changes improve test coverage, future-proof the codebase, and ensure consistency between benchmarks, unit tests, and production execution.

@lukekim lukekim self-assigned this Jan 29, 2026
@lukekim lukekim added enhancement New feature or request changelog/chore labels Jan 29, 2026
@lukekim lukekim merged commit 5d0079e into develop Jan 30, 2026
22 of 51 checks passed
@lukekim lukekim deleted the lukim/pr-comments branch January 30, 2026 00:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/chore enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants