Skip to content

Rework error handler mechanism #1549

Closed
1 of 1 issue completed
Closed

Description

@norberttech

Currently ErrorHandler's are a bit problematic since they operate on Rows.
It was done this way due to historical reason, Transformers are also operating on Rows.

But with all recently added features we should move towards operating on a single Row.

Once we move following building blocks to operate on Row instead of Rows we can tackle ErrorHandlers.

  • Pipelines
  • Transformers

The extractors should still yield Rows due to performance reasons.

Moving transformers and Pipelines to operate on Row instead of Rows will also reduce the number of loops, currently each transformer needs to loop over all rows, but once we are dont with this only Pipeline will iterate through rows (as pipeline is the first touch point) and then transformer's are going to just execute their logic without iterating trough rows.

That might bring some performance boost, especially on massive datasets.

Activity

  1. added this to the 1.0.0 milestone on Nov 5, 2025
  2. norberttech commented on Nov 8, 2025

    @norberttech
    MemberAuthor

    After doing some research about this issue, I still think it's a good idea to make transformers operates on single Row however pipelines should be able to accumulate Rows.

    One might ask what's the difference then between Transformer and Scalar Function?
    State.

    Scalar Functions - they should not have any state. Scalar function should get operate on a single row and never keep any state.
    Transformers - role of transformers is to maintain some state when needed. Like for example in LimitTransformer that with each row that passes through it increases it's internal state and compares it with the limit.

    Currently the biggest blocker from moving towards row by row processing is WindowFunctionTransfomer which due to his complexity should become a pipeline just like HashJoinPipeline, SortingPipeline or GroupByPipeline

  3. norberttech commented on Nov 8, 2025

    @norberttech
    MemberAuthor

    #1970 was pretty much the only blocker to move towards row by row processing transformers, there should be no more roadblocks.

  4. norberttech commented on Oct 31, 2026

    @norberttech
    MemberAuthor

    Closed by #2712

  5. moved this from Todo to Done in Roadmap on Oct 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    • Status
      Done

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions